直接部署:
1、將程序所需要的文件如配置文件和生成的可執行文件拷貝到linux中
2、直接執行./main命令,啟動程序 (main是go編譯生成的可執行文件)
如果報Permission denied錯誤,將可執行文件賦予可執行權限
chmod -R 755 main
在后台啟動程序
./main這種啟動方法在控制台退出時程序會停止,我們可以用nohup ./main &命令讓程序在后台運行
nohup ./main &
如果需要記錄日志的話,可以這樣使用
nohup ./main > logs/app.log 2>&1 &
nohup 需要運行的命令 >日志文件路徑 2>&1 &
查看程序是否正常運行
ps aux | grep main
殺掉進程
ps -ef|grep "./main"|grep -v grep|awk '{print $2}'|xargs kill -9
基於nginx部署:
首先啟動你的go服務,可參照上面直接部署
在使用nginx 部署時,首先要明白nginx 反向代理的原理。推薦看下Nginx 極簡教程
反向代理是指以代理服務器來接受網絡上的連接請求,然后將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。(來自百科)

配置 hosts
由於需要用本機作為演示,因此先把映射配上去,打開 /etc/hosts,增加內容:
127.0.0.1 api.blog.com
配置 nginx.conf
打開 nginx 的配置文件 nginx.conf(我的是 /usr/local/etc/nginx/nginx.conf),我們做了如下事情:
增加 server 片段的內容,設置 server_name 為 api.blog.com 並且監聽 8081 端口,將所有路徑轉發到 http://127.0.0.1:8000/ 下
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8081;
server_name api.blog.com;
location / {
proxy_pass http://127.0.0.1:8000/;
}
}
}
重啟 nginx
$ nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
$ nginx -s reload
訪問接口

這樣就實現了一個簡單的反向代理,基於nginx部署go程序完成!
