Go Gin服务部署至GoDaddy生产服务器后无法访问求助
问题排查与解决方案
针对你在GoDaddy cPanel部署Go Gin服务遇到的域名访问路由404问题,按以下步骤逐一排查:
1. 修正Gin应用的绑定地址
本地测试时用localhost:8080仅允许服务器内部访问,外部请求无法进入。修改启动代码,将应用绑定到服务器的所有网卡:
r.Run("0.0.0.0:8080") // 替换原有的 r.Run() 或 r.Run("localhost:8080")
重新编译适配amd64 Linux的二进制文件,上传后重启服务。
2. 配置cPanel反向代理(核心步骤)
GoDaddy服务器默认由Apache/Nginx监听80/443端口,你的Gin服务运行在8080端口,需要通过反向代理将域名请求转发到8080:
- 登录cPanel,找到反向代理管理器
- 添加规则:
- 来源URL:填写
/(表示整个域名的所有请求) - 目标URL:填写
http://127.0.0.1:8080 - 保存并启用规则
- 来源URL:填写
- 排查
.htaccess文件冲突:临时重命名网站根目录的.htaccess文件,测试是否能正常访问路由。若恢复正常,再调整该文件中的重写规则,避免覆盖反向代理配置。
3. 验证服务器内部访问是否正常
通过SSH执行命令,确认Gin服务本身能正常响应:
curl http://127.0.0.1:8080/register_license
- 若返回正确内容:说明应用无问题,问题出在反向代理或域名路由配置
- 若返回404:检查Gin的路由代码是否正确,或编译时是否遗漏了路由逻辑
4. 确保应用后台稳定运行
直接通过SSH启动的进程会在连接断开后终止,需让服务后台运行:
nohup ./你的Gin应用二进制文件名 > app.log 2>&1 &
用以下命令检查进程状态:
ps aux | grep 你的Gin应用二进制文件名
5. 核对静态文件与模板路径
本地相对路径在服务器上可能失效,可在代码中打印当前工作目录确认:
wd, _ := os.Getwd() fmt.Println("当前工作目录:", wd)
确保模板文件、style.css等资源的路径与代码中指定的一致,比如代码用r.LoadHTMLGlob("templates/*"),则服务器应用目录下必须存在templates文件夹并包含对应模板。
内容的提问来源于stack exchange,提问作者user1503949
相关产品推荐
相关产品推荐

