Beego打包部署到Linux
-
打包
打开Terminal 定位到工程的 main.go
文件夹目录
使用命令 bee pack -be GOOS=linux
进行打包
打包成Windows 命令
bee pack -be GOOS=windows
-
部署
-
将打包好的程序,放到Linux上的某个目录。
-
将程序放在后台运行,这里使用
screen
命令进行操作。一般来说,Linux
都会自带了screen
,如果没有,则可通过命令sudo apt-get install screen
或sudo yum install screen
进行安装。 -
安装完成
screen
后,使用命令screen -S ***
进入到screen
后台界面,其中打 *** 号的是给这个屏幕建一个别名,这样好知道后台部署的程序在哪个screen
的容器内。 -
在进入到某个
screen
后,就可在这里进行运行你的程序的操作。这里使用nohup
进行运行,如nohup ./app &
进行运行。 -
执行结束后,按键盘
ctrl+A+D
键进入到前台。
需要查看有哪些
screen
在使用,可使用screen -ls
查看。如下:
[root@izwz9j9o61ggn****hbz ~]# screen -ls
There is a screen on:
6931.golang***Api (Detached)
1 Socket in /var/run/screen/S-root.
其中,6931即为该实例的ID号。后面即可通过 screen -r 6931 再次进入到该实例进行操作。若出现使用以上命令无法进入,则使用screen -d 6931 后再次使用-r命令即可进入。
这样,在linux上部署golang程序就算结束。
-
Nginx转发代理
有时候,我们的后台设计,可能采用的是微服务的架构,不同的功能点,调用不同的服务进行请求,这里就可以使用Nginx
进行做统一的请求转发。
- 打开
Nginx
的配置nginx.conf
文件,添加如下代码
server {
listen 80;// 监听的端口
server_name .a.com; // 服务的域名
charset utf-8;
access_log /home/a.com.access.log;
location /(css|js|fonts|img)/ {
access_log off;
expires 1d;
root "/path/to/app_a/static";
try_files $uri @backend;
}
location / {
try_files /_not_exists_ @backend;
}
location @backend {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8080; //你刚才部署golang程序监听的端口
}
}
- 重启
Nginx
服务systemctl restart nginx