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

请求指导:如何在搭载CWP的CentOS VPS域名下运行Go语言程序

在CWP CentOS VPS上部署Go程序到指定域名的详细操作

1. 安装Go环境(未安装时执行)

  • 登录VPS的SSH终端,切换到root用户:sudo su -
  • 下载Go安装包(以1.22.4版本为例):
    wget https://dl.google.com/go/go1.22.4.linux-amd64.tar.gz
    
  • 解压到系统目录:
    rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
    
  • 配置环境变量,编辑/etc/profile文件:
    vi /etc/profile
    
    在末尾添加以下内容:
    export PATH=$PATH:/usr/local/go/bin
    export GOPATH=$HOME/go
    
  • 刷新环境变量:source /etc/profile
  • 验证安装:go version,输出版本号即为成功

2. 编写并编译Go程序

  • 创建项目目录(替换yourdomain.com为你的实际域名):
    mkdir -p /var/www/yourdomain.com/goapp && cd /var/www/yourdomain.com/goapp
    
  • 新建main.go文件,写入基础Web服务代码:
    vi main.go
    
    代码示例:
    package main
    
    import (
        "fmt"
        "net/http"
    )
    
    func handler(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello from Go! Running on yourdomain.com")
    }
    
    func main() {
        http.HandleFunc("/", handler)
        // 监听8080端口,避免与CWP默认服务端口冲突
        http.ListenAndServe(":8080", nil)
    }
    
  • 编译为可执行二进制文件:
    go build -o goapp main.go
    
  • 测试运行:./goapp,打开浏览器访问http://你的VPSIP:8080,能看到输出即为程序正常,按Ctrl+C停止运行

3. 配置systemd实现程序后台运行+开机自启

  • 新建systemd服务文件:
    vi /etc/systemd/system/goapp.service
    
    内容如下(替换路径为你的实际项目路径):
    [Unit]
    Description=Go App for yourdomain.com
    After=network.target
    
    [Service]
    User=root
    WorkingDirectory=/var/www/yourdomain.com/goapp
    ExecStart=/var/www/yourdomain.com/goapp/goapp
    Restart=always
    RestartSec=3
    
    [Install]
    WantedBy=multi-user.target
    
  • 重新加载systemd配置:systemctl daemon-reload
  • 启动服务并设置开机自启:
    systemctl start goapp
    systemctl enable goapp
    
  • 检查服务状态:systemctl status goapp,显示active (running)即为成功

4. 通过CWP配置反向代理(域名转发到Go程序)

Nginx环境操作

  • 登录CWP面板(默认地址http://你的VPSIP:2030)
  • 左侧菜单选择WebServers Settings -> Nginx Vhosts Editor
  • 下拉框选目标域名yourdomain.com,点击Edit
  • 将location /块内容替换为反向代理规则:
    location / {
        proxy_pass http://127.0.0.1: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;
    }
    
  • 若有静态文件,可添加额外规则(示例):
    location /static/ {
        root /var/www/yourdomain.com/goapp;
        expires 30d;
    }
    
  • 保存配置后重启Nginx:systemctl restart nginx

Apache环境操作

  • 左侧菜单选择WebServers Settings -> Apache Vhosts Editor
  • 选择目标域名,在配置中添加反向代理规则:
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
    
  • 重启Apache:systemctl restart httpd

5. 防火墙配置

  • 若使用反向代理,仅需确保80/443端口开放(CWP默认已配置);若需直接访问Go程序的8080端口,执行:
    firewall-cmd --add-port=8080/tcp --permanent
    firewall-cmd --reload
    

6. 测试访问

  • 打开浏览器输入你的域名http://yourdomain.com,能看到Go程序输出即为部署成功
  • 如需HTTPS,直接在CWP面板为域名申请Let's Encrypt证书,配置完成后访问https://yourdomain.com即可,反向代理规则无需修改

内容的提问来源于stack exchange,提问作者Mahsa az

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:32:50