linux部署go項目


直接部署:

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程序完成!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM