部署上线你的项目

如何部署你的项目到服务器上?

后端(Go 项目)部署流程

在项目根目录下执行编译命令,生成适用于 Linux 系统的二进制文件:

bash 复制代码
GOOS=linux GOARCH=amd64 go build -o oscAppLinux
一般大家都是Windows系统去编译
如果是Windows系统需要注意不要用cmd,用powershell去编译,执行如下命令:

$env:CGO_ENABLED="0"

$env:GOOS="linux"

$env:GOARCH="amd64"

go build -o oscAppLinux .  # oscAppLinux 是编译后的文件名,可更改

将编译后的文件和配置文件上传到服务器:

注意后端除了上传你编译后的可执行文件,还要注意上传后端的配置文件(config.yaml,如果有静态资源文件夹也要进行上传,如resource这样的目录。

bash 复制代码
scp oscAppLinux config.yaml user@server_ip:/usr/local/osc

除了这种方式以外还可以在你要上传的服务器终端上面输入 rz
rz  # 上传文件到当前目录

或者你使用xshell 活finalshell这样工具直接上传

使用 nohup 命令让程序在后台运行并记录日志:

在使用这条命令之前,可以先直接运行你的可执行文件,让其结果在终端输出,以验证你的输出结果对不对。

bash 复制代码
nohup ./oscAppLinux > osc.log 2>&1 &

检查程序运行状态或终止进程:

bash 复制代码
ps -ef | grep oscAppLinux
kill -9 <pid>

前端(Web 项目)部署流程

在本地前端项目目录下执行打包命令:

bash 复制代码
npm run build

将生成的 dist 文件夹上传到服务器:

同理,上传方式不止这一种,参考后端上传方式

bash 复制代码
scp -r dist user@server_ip:/usr/local/osc

修改 Nginx 配置文件托管静态文件并配置反向代理:

nginx 复制代码
# nginx的配置示列

user root;
events {
  worker_connections  1024;  ## Default: 1024
} 

http {
     include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

server {
    listen 8080;   # 要监听的端口
    index index.php index.html index.htm default.php default.htm default.html;
    server_name home.mychat.cloud;
    root /usr/local/osc/dist;   #你dist方法目录
    
    location  /api {
        rewrite ^/api/(.*)$ /$1 break;
        proxy_pass http://127.0.0.1:8888; # 设置代理服务器的协议和地址  端口要和后端部署保持一致
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
}

重启 Nginx 使配置生效:

bash 复制代码
systemctl restart nginx

常见问题与解决方案

二进制文件无法执行 检查文件格式并重新编译:

bash 复制代码
file oscAppLinux
GOOS=linux GOARCH=amd64 go build -o oscAppLinux
chmod +x oscAppLinux

浏览器访问 403 错误 调整目录权限并检查索引文件:

bash 复制代码
chown -R nginx:nginx /usr/local/osc/dist
chmod -R 755 /usr/local/osc/dist
ls /usr/local/osc/dist/index.html

接口访问 404 问题 检查后端路由配置和 Nginx 代理规则:

go 复制代码
// 确保后端路由存在
router.GET("/user", UserHandler)

查看 Nginx 日志排查问题:

bash 复制代码
tail -f /var/log/nginx/error.log

nginx -t          # 检查配置语法
相关推荐
db_cy_206215 小时前
Docker+Kubernetes企业级容器化部署解决方案(阶段一)
docker·容器·kubernetes·云计算·负载均衡·运维开发
信创天地2 天前
AI + 信创双轮驱动:从自主可控到智能引领,重塑数字经济新范式
运维·人工智能·网络安全·系统架构·系统安全·运维开发
UpYoung!2 天前
手机投屏给电脑【开源免费投屏软件】投屏软件之Escrcpy 完全教程:新一代安卓(鸿蒙)投屏与控制解决方案
android·运维开发·办公学习·运维必备·escrcpy·投屏软件·安卓投屏
猫头虎2 天前
如何在浏览器里体验 Windows在线模拟器:2026最新在线windows模拟器资源合集与技术揭秘
运维·网络·windows·系统架构·开源·运维开发·开源软件
UpYoung!3 天前
【Windows 文件系统管理工具】实用工具之XYplorer 完全指南:专业级文件系统管理的终极解决方案
运维·运维开发·实用工具·文件系统管理·办公学习·xyplorer·windows文件管理工具
信创天地4 天前
深耕金融政务核心场景:国产化数据库迁移的全流程架构设计与风险管控
运维·网络安全·系统架构·系统安全·运维开发
码力码力我爱你5 天前
Windows快速搭建局域网https文件管理
运维开发
我送炭你添花6 天前
Python与串口:从基础到实际应用——以Pelco KBD300A模拟器项目为例
开发语言·python·自动化·运维开发
我送炭你添花8 天前
Pelco KBD300A 模拟器:07+2.Python 专题:线程安全与信号槽机制——项目多线程最佳实践
python·自动化·运维开发
我送炭你添花8 天前
Pelco KBD300A 模拟器:07+1.宏脚本编辑器与模板库管理实现细节
python·自动化·编辑器·运维开发