一、环境
(一)部署环境
阿里云服务器、Xsheel、Xftp7
(二)部署怎么调用
最近第一次在阿里云服务器部署自己的gin项目。虽说之前知道部署就是项目在服务器上面跑起来,可以供其他人访问。但是却不知道如何访问。最后得知其实是通过服务器公用Ip地址+端口号访问
。
现在看来有点可笑,这么简单的问题都不知道。但学习就是这样磕磕绊绊。
(三)为什么要部署
写前后端分离项目的时候,前端有时候需要调用接口测试数据。这个时候就需要访问到我们的路由,虽说可以通过内网映射让前端访问。但是在开发阶段我们经常需要调试代码,项目不可能一直都在运行中。为此,我们可以将我们的项目部署到远程服务器,以供他人随时调用。
一、在云服务器Linux直接部署
如果项目需要使用Mysql、Redis的话,我建议先在云服务器上下载并配置Mysql、Redis。
(一)设置阿里云服务器安全组
Mysql默认端口3306,Redis默认端口6379,再开启一个项目端口
(二)安装MySQL并设置远程连接
可以参考何在Linux下安装MySQL,建立远程连接
也可以使用dockerDocker配置Mysql并设置远程连接
(三)安装Redis并设置远程连接
可以参考LInux下进行redis的安装和配置(开启远程连接)
(四)部署项目
1. 修改配置文件
既然云服务器上mysql、redis远程连接设置好了,那我们就可以拿来用了。
将mysql的host改为云服务器公网ip
,user、password对应修改。redis同上。
修改完成后,可以先运行一下程序,如果正常运行的话,说明Mysql、Redis远程连接配置的没毛病。
2. GoLand终端打包
// 设置项目编译环境为linux
go env -w GOOS=linux
// 打包,main为包名,可以任取
go build -o main
如果没有问题的话,在你项目下面会生成一个main
3. Xftp
- 创建/workspace/工作目录,创建/workspace/mosi/项目目录
- 将main、config.yaml直接拖到/workspace/mosi/目录下
4. XSheel
现在我们的项目已经部署到云服务器里面了,剩下的让它跑起来就可以了。
// 进入项目目录
cd /workdspace/mosi/
// 给main执行权限
chmod +x main
// 设置后台运行 nohup ./包名 -c 配置文件.yaml > 日志名.log 2>&1 &
nohup ./main -c config.yaml > start.log 2>&1 &
这个时候我们的项目就已经启动了。后面代码更新的话,需要删除/workspace/mosi/main
,将新生成的main重新拖入/workspace/mosi/
,然后重复上面命令。也可以创建脚本,简化命令。
编写脚本
在/workspace/mosi/
目录下创建脚本
cd /workdspace/mosi/
// vi 脚本名.sh 编写脚本
vi main.sh
// 结束前面运行的项目
kill -9 "$(pgrep -f main)"
chmod +x main
nohup ./main -c config.yaml > start.log 2>&1 &
echo "ok" // 运行脚本后成功后输出ok
Esc:wq //按完Esc键后,输入":wq",退出脚本
sh main.sh // 运行脚本
如果成功的话,会输出ok
[root@xiaoxi mosi]# sh mosi.sh
ok
然后在浏览器输入云服务器公网Ip:项目运行端口/路由
,就可以访问了