在Linux系統上部署Golang應用程序通常涉及以下幾個步驟:
下載并解壓Go安裝包:
訪問Go官方下載頁面下載最新版本的Go二進制安裝包。使用 wget
命令下載并解壓到 /usr/local
目錄下。
wget https://golang.org/dl/go1.22.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.1.linux-amd64.tar.gz
設置環境變量:
編輯 ~/.bashrc
或 ~/.zshrc
文件,添加以下行:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
保存文件并運行以下命令使更改生效:
source ~/.bashrc
驗證安裝: 運行以下命令來驗證Go是否安裝成功:
go version
你應該能看到類似 go version go1.22.1 linux/amd64
的輸出。
創建一個簡單的Golang應用程序,例如一個HTTP服務器:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
})
http.ListenAndServe(":8080", nil)
}
在應用程序目錄中,使用以下命令構建程序:
go build
該命令會將程序編譯成可執行文件。執行完畢后,會在當前目錄下生成一個名為 main
的文件。
直接運行可執行文件: 使用以下命令運行編譯后的二進制文件:
./main
這將在本地8080端口啟動HTTP服務。
使用systemd進行管理:
為了使應用程序在后臺運行并在崩潰時自動重啟,可以創建一個 systemd
服務文件。
創建一個名為 myapp.service
的配置文件,并將以下內容復制到文件中:
[Unit]
Description=My Golang App
After=syslog.target network.target
[Service]
Type=simple
User=root
WorkingDirectory=/path/to/your/app
ExecStart=/usr/local/go/bin/myapp
Restart=always
[Install]
WantedBy=multi-user.target
將該文件保存到 /etc/systemd/system
目錄下,并使用以下命令重新加載 systemd
配置:
sudo systemctl daemon-reload
使用以下命令啟動服務:
sudo systemctl start myapp
使用以下命令檢查服務狀態:
sudo systemctl status myapp
使用以下命令使服務開機自啟動:
sudo systemctl enable myapp
安裝Nginx:
sudo apt update
sudo apt install nginx
配置Nginx以反向代理到你的Golang應用:
sudo nano /etc/nginx/sites-available/myapp
添加以下內容:
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
啟用配置:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
打開瀏覽器并訪問你的域名或IP地址,你應該能看到你的Golang應用正在運行。