请求指导:如何在搭载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/profileexport 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.gopackage 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
相关产品推荐
相关产品推荐

