首頁 > 科技

如何在linux上部署golang程式

2021-06-30 15:50:53

簡介

golang作為21世紀的c語言,它不僅有著c語言的高效性,同時它還有著python語言的便捷性,作為一個編譯語言,它兼具著出色的效能體驗和良好的開發體驗。

編譯成二進位制檔案,然後直接運行

golang開發的好處是當它部署的時候,它不需要環境依賴,不像java需要虛擬機器才能執行,不像c語言需要各種lib庫才能運行,你只需要將它和作業系統對應編譯生成二進位制檔案,就可以在各個作業系統上直接運行。

編寫服務指令碼,設定成開機自啟動

有些時候,我們希望我們的服務可以優雅的啟動,停止,這個時候,我們可以創建一個服務指令碼來設定我們的程式。

首先,我們可以創建一個服務的文字檔案,然後將下面的內容複製進去,就完成了一個服務的指令碼,然後就可以通過systemctl進行服務的管理。

[Unit]Description=Go sample web appAfter=multi-user.target[Service]User=rootGroup=rootExecStart=/root/go/hello_world[Install]WantedBy=multi-user.target

使用supervisor進行程序服務的管理

對於生成的二進位制檔案,有些時候我們希望有一個管理工具可以對我們的程式進行管理,當程式掛掉的時候,可以自動重啟,它可以監聽程式的異常,而supervisor就是使用python開發的一個這樣的工具。通過supervisor,我們可以優雅地管理我們的golang應用程式。

使用nginx做反向代理

nginx對於靜態檔案的高效處理已經得到實踐的證明,因此對於動態內容的處理我們可以交給golang,而對於靜態檔案我們讓nginx進行處理。

我們只需要讓nginx進行反向代理,監聽tcp埠,將具體的請求轉發給golang程式即可。

nohup 後臺運行

nohup 英文全稱 no hang up(不掛起),用於在系統後臺不掛斷地運行命令,退出終端不會影響程式的運行。

nohup 命令,在預設情況下(非重定向時),會輸出一個名叫 nohup.out 的檔案到當前目錄下,如果當前目錄的 nohup.out 檔案不可寫,輸出重定向到 $HOME/nohup.out 檔案中。

通過使用nohup,我們就可以讓我們的程式在後臺運行。

tmux管理

Tmux 是一個終端複用器(terminal multiplexer),它可以讓我們複用多個終端,它不僅可以管理會話,也可以管理視窗,窗格。

通過tmux新建一個會話,我們可以實現當我們斷開伺服器終端的時候,我們的程式依然可以執行。

總結

雖然上面提到了很多種方式可以運行我們的golang程式,但是面對複雜的業務環境,更多的時候我們還是採用docker等進行容器部署,微服務是當前的發展方向,通過k8s來靈活擴展的程式才是適合時代發展的好方式。


IT145.com E-mail:sddin#qq.com