溫馨提示×

Golang在Linux系統上如何部署

小樊
44
2025-06-13 04:38:08
欄目: 編程語言

在Linux系統上部署Golang應用程序通常涉及以下幾個步驟:

1. 安裝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 的輸出。

2. 編寫Golang應用程序

創建一個簡單的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)
}

3. 構建Golang應用程序

在應用程序目錄中,使用以下命令構建程序:

go build

該命令會將程序編譯成可執行文件。執行完畢后,會在當前目錄下生成一個名為 main 的文件。

4. 部署Golang應用程序

  • 直接運行可執行文件: 使用以下命令運行編譯后的二進制文件:

    ./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
    

5. 配置Nginx作為反向代理(可選)

安裝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

6. 驗證部署

打開瀏覽器并訪問你的域名或IP地址,你應該能看到你的Golang應用正在運行。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女