当前位置: 首页 > news >正文

部署上线你的项目

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

后端(Go 项目)部署流程

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

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这样的目录。

scp oscAppLinux config.yaml user@server_ip:/usr/local/osc除了这种方式以外还可以在你要上传的服务器终端上面输入 rz
rz  # 上传文件到当前目录或者你使用xshell 活finalshell这样工具直接上传

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

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

nohup ./oscAppLinux > osc.log 2>&1 &

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

ps -ef | grep oscAppLinux
kill -9 <pid>

前端(Web 项目)部署流程

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

npm run build

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

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

scp -r dist user@server_ip:/usr/local/osc

修改 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 使配置生效:

systemctl restart nginx

常见问题与解决方案

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

file oscAppLinux
GOOS=linux GOARCH=amd64 go build -o oscAppLinux
chmod +x oscAppLinux

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

chown -R nginx:nginx /usr/local/osc/dist
chmod -R 755 /usr/local/osc/dist
ls /usr/local/osc/dist/index.html

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

// 确保后端路由存在
router.GET("/user", UserHandler)

查看 Nginx 日志排查问题:

tail -f /var/log/nginx/error.lognginx -t          # 检查配置语法

http://www.dtcms.com/a/299077.html

相关文章:

  • 【Git】实用Git操作指南:从入门到高效协作
  • 小米携手云轴科技ZStack获信通院可信云用户典型实践奖
  • 大语言模型 LLM 通过 Excel 知识库 增强日志分析,根因分析能力的技术方案(2):LangChain + LlamaIndex 实现
  • Nanopct6SDK问题汇总与解决方案
  • 【架构】Docker简单认知构建
  • 【工程化】浅谈前端构建工具
  • Python爬虫实战:研究purl库相关技术
  • Mistral AI开源 Magistral-Small-2507
  • 密码学系列 - 密钥派生
  • 界面规范3-列表下
  • “给予” 超越 “莲花”,支持图片在线编辑
  • AI是否会终结IT职业?深度剖析IT行业的“涌现”与重构
  • 【GaussDB】构建一个GaussDB的Docker镜像
  • 【GaussDB】如何从GaussDB发布包中提取出内核二进制文件
  • window下MySQL安装(二)疑难解答
  • Apache Doris Data Agent 解决方案:开启智能运维与数据治理新纪元
  • excel删除重复项场景
  • Java面试题及详细答案120道之(021-040)
  • 字节跳动扣子 Coze 宣布开源:采用 Apache 2.0 许可证,支持商用
  • Qt 远程过程调用(RPC)实现方案
  • 网络基础19--OSPF路由业务多区域
  • 【Android】相对布局应用-登录界面
  • Java 中 System 类零度解析
  • 4N90-ASEMI电机控制专用4N90
  • 【数据结构】树的概念
  • 统计与大数据分析与数学金融课程解析
  • Avantage6.6下载与安装教程
  • 2025.7.26字节掀桌子了,把coze开源了!!!
  • 激光雷达-相机标定工具:支持普通相机和鱼眼相机的交互式标定
  • kafka的部署和jmeter连接kafka