linux

Golang Linux应用如何部署

小樊
52
2025-09-08 15:35:24
栏目: 编程语言

Golang应用在Linux系统的部署流程如下:

  1. 安装Golang环境

    • 下载对应系统的二进制包(如go1.22.0.linux-amd64.tar.gz),解压至/usr/local
      wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz && sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
    • 配置环境变量:在~/.bashrc中添加export PATH=$PATH:/usr/local/go/bin,执行source ~/.bashrc
    • 验证安装:go version
  2. 编写/获取应用代码

    • 本地开发后,通过git clone拉取代码至服务器,或直接在服务器编写代码。
  3. 编译应用

    • 纯Go项目(无CGO)可直接静态编译:
      CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myapp main.go
    • 若需动态链接(含CGO),需安装对应系统的依赖库。
  4. 部署运行

    • 直接运行./myapp(前台运行,关闭终端即停止)。
    • 后台运行
      • nohup ./myapp > myapp.log 2>&1 &(需手动管理日志)。
      • 推荐使用systemd
        1. 创建服务文件/etc/systemd/system/myapp.service
          [Unit]
          Description=My Go App
          After=network.target
          [Service]
          ExecStart=/path/to/myapp
          WorkingDirectory=/path/to/app
          User=nobody
          Restart=always
          [Install]
          WantedBy=multi-user.target
          ```。  
          
        2. 启用并启动服务:
          sudo systemctl daemon-reload && sudo systemctl start myapp && sudo systemctl enable myapp
  5. 可选:配置Nginx反向代理

    • 若需通过HTTP访问,可配置Nginx代理到应用端口(如8080):
      server {
          listen 80;
          server_name your_domain;
          location / {
              proxy_pass http://localhost:8080;
          }
      }
      ```。  
      
      
  6. 防火墙设置

    • 若使用特定端口,需开放防火墙(如ufw allow 8080)。

关键说明

0
看了该问题的人还看了