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

DigitalOcean Ubuntu 18.04服务器Nginx Server Blocks请求超时问题

解决Nginx Server Blocks外部访问超时问题

看起来你的Nginx配置本身是没问题的(nginx -t验证通过、本地ping域名正常),但外部访问超时的问题大概率出在网络防火墙层面——不管是DigitalOcean的云防火墙还是Ubuntu系统自带的UFW,都可能阻断了80端口的入站流量。下面是一步步的排查和解决步骤:

1. 先检查DigitalOcean云防火墙规则

DigitalOcean的Droplet默认可能绑定了云防火墙,这是很多人容易忽略的点:

  • 登录DigitalOcean控制台,找到你的Droplet对应的Cloud Firewall配置
  • 确保存在一条入站规则:允许HTTP (80)端口接收来自0.0.0.0/0(IPv4)和::/0(IPv6)的所有流量
  • 如果没有这条规则,赶紧添加,等待1-2分钟后再用浏览器测试访问

2. 检查Ubuntu系统自带的UFW防火墙

Ubuntu 18.04默认启用了UFW,需要确认80端口是否开放:

  • 通过SSH登录Droplet,执行命令查看当前UFW状态:
    sudo ufw status
    
  • 如果输出里没有80/tcp的ALLOW规则,执行命令开放端口:
    sudo ufw allow 80/tcp
    
  • 再次执行sudo ufw status确认规则已成功添加

3. 确认Nginx确实在监听80端口

有时候配置验证通过,但Nginx可能没正常监听端口:

  • 执行命令查看Nginx的监听状态:
    sudo netstat -tulpn | grep nginx
    
  • 正常情况下你应该看到类似0.0.0.0:80和:::80的记录,说明Nginx在IPv4和IPv6的80端口都处于监听状态
  • 如果看不到监听记录,重启Nginx再检查:
    sudo systemctl restart nginx
    

4. 验证本地服务是否正常运行

在Droplet的SSH环境里,测试本地能否访问Nginx服务:

  • 执行命令:
    curl http://localhost
    # 或者直接访问你的域名
    curl http://congressbios.com
    
  • 如果能正常返回index.html的内容,说明Nginx在本地工作完全正常,问题肯定出在外部网络的流量阻断上(回到前两步防火墙排查)
  • 如果本地curl也失败,那需要检查网站目录的权限:
    # 把目录所有者设置为Nginx运行用户www-data
    sudo chown -R www-data:www-data /var/www/congressbios.com/public
    # 设置正确的目录权限
    sudo chmod -R 755 /var/www/congressbios.com
    
    权限修复后重启Nginx再测试

5. 最后验证外部端口连通性

从你的Mac上用telnet测试端口是否能连通:

telnet congressbios.com 80

如果连接超时,说明80端口确实被阻断,重点排查前两步的防火墙配置;如果能连接成功,再检查浏览器的缓存或代理设置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:23:48