DigitalOcean与Google Domains配置问题:访问域名跳转至IP地址端口
解决浏览器地址栏从域名跳转到IP:端口的问题
看起来你的域名解析是正常的(能成功跳转到服务器并显示内容),但地址栏被替换成IP+端口的形式,大概率是服务器上的Web服务反向代理配置(比如Nginx/Apache)或者你的应用本身做了强制跳转,导致浏览器被重定向到了IP地址。下面是一步步的排查和修复方案:
1. 检查反向代理(以Nginx为例)的核心配置
这是最常见的触发原因,DigitalOcean上多数用户会用Nginx做反向代理,你需要确保配置里没有把请求重定向到IP,而是保留域名信息:
正确的Nginx配置示例
打开你的站点配置文件(通常路径是/etc/nginx/sites-available/myurl.com),确认包含这些关键设置:
server { listen 80; server_name myurl.com www.myurl.com; # 将请求转发到你的应用端口(替换成你实际使用的端口号) location / { proxy_pass http://localhost:你的应用端口; proxy_set_header Host $host; # 这行是核心!告诉应用请求的域名是myurl.com 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; } # 如果启用了HTTPS,补充443端口的SSL配置(记得替换证书路径) listen 443 ssl; ssl_certificate /path/to/your/ssl/cert.pem; ssl_certificate_key /path/to/your/ssl/key.pem; } # 可选:将www前缀的域名重定向到主域名(根据你的需求调整) server { listen 80; server_name www.myurl.com; return 301 $scheme://myurl.com$request_uri; }
重点强调:proxy_set_header Host $host; 这行必须存在,否则你的应用会误以为请求来自localhost:端口,从而生成指向IP地址的跳转链接。
修改完成后,先测试配置是否合法:
nginx -t
如果提示test is successful,重启Nginx生效:
sudo systemctl restart nginx
2. 检查应用程序的内部设置
有些应用(比如Node.js Express、Python Django/Flask)会根据请求的Host头生成跳转链接,如果应用里硬编码了IP地址或端口,也会导致地址栏变化:
- 避免使用
res.redirect('http://你的IP:端口/index')这类硬编码跳转,改用相对路径res.redirect('/index') - 在Django中,确认
ALLOWED_HOSTS包含myurl.com,CSRF_TRUSTED_ORIGINS也添加了域名 - 检查应用的"基础URL"配置项,确保设置为
myurl.com而非服务器IP
3. 确认DNS与端口转发无异常
虽然域名能正常解析,但还是快速核对:
- DigitalOcean和Google Domains的DNS记录中,A/AAAA记录是直接将
myurl.com指向服务器IP,没有设置URL转发类的记录 - 如果使用非80/443端口,确保反向代理已经将80/443端口的请求转发到应用端口,这样用户访问
myurl.com时无需手动加端口,也不会暴露端口信息
4. 清除缓存后测试
浏览器可能会缓存旧的重定向规则,测试前建议:
- 用隐私模式(Incognito)访问
myurl.com - 或者清除浏览器的缓存与Cookie
如果以上步骤都尝试后问题仍存在,可以把你的反向代理配置内容贴出来,我再帮你排查细节!
内容的提问来源于stack exchange,提问作者Kevin Cho




