You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在带ISPManager面板的Ubuntu 22.04服务器部署Go Web应用

部署Go Web应用到Ubuntu 22.04服务器的步骤

1. 编译Go应用为可执行二进制文件

生产环境不建议用go run运行,先将代码编译成独立的二进制文件:

  • SSH登录服务器,进入你的Go项目目录:cd /path/to/your/go/project
  • 执行编译命令:go build -o myapp(myapp可替换为你自定义的应用名称)
  • 编译完成后,会得到一个名为myapp的可执行文件,运行./myapp即可启动应用(先确认应用监听的端口,比如常见的8080)

2. 配置systemd让应用后台运行并开机自启

直接运行./myapp会在关闭SSH连接后停止,用systemd管理服务可解决这个问题:

  • 创建服务配置文件:sudo nano /etc/systemd/system/myapp.service
  • 粘贴以下内容,替换your_username为你的服务器用户名,/path/to/your/go/project为项目实际路径:
    [Unit]
    Description=My Go Web App
    After=network.target
    
    [Service]
    User=your_username
    WorkingDirectory=/path/to/your/go/project
    ExecStart=/path/to/your/go/project/myapp
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  • 保存退出(按Ctrl+O回车,再按Ctrl+X)
  • 重新加载systemd配置:sudo systemctl daemon-reload
  • 启动应用服务:sudo systemctl start myapp
  • 设置开机自启:sudo systemctl enable myapp
  • 查看服务状态:sudo systemctl status myapp(显示active (running)即为正常运行)

3. 配置Nginx反向代理实现域名访问

通过Nginx将域名请求转发到Go应用的端口,无需再输入IP加端口:

  • 安装Nginx:sudo apt update && sudo apt install nginx
  • 创建域名配置文件:sudo nano /etc/nginx/sites-available/yourdomain.com(替换为你的实际域名)
  • 粘贴以下内容,注意把8080换成你的Go应用监听的端口:
    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
    
        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/yourdomain.com /etc/nginx/sites-enabled/
  • 测试Nginx配置合法性:sudo nginx -t
  • 重启Nginx使配置生效:sudo systemctl restart nginx

4. 配置域名解析

登录你的域名服务商后台,添加A记录,将域名指向服务器的公网IP地址,等待解析生效(通常需要几分钟到几小时)

5. 可选:配置HTTPS证书(免费)

用Let's Encrypt的certbot给域名配置SSL证书,实现HTTPS访问:

  • 安装certbot:sudo apt install certbot python3-certbot-nginx
  • 生成并配置证书:sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
  • 按照终端提示完成操作,certbot会自动修改Nginx配置并开启HTTPS

内容的提问来源于stack exchange,提问作者Maksat Rsymbetov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 01:57:30