Nginx通过IP+端口可正常访问 使用域名访问返回404错误如何解决
Nginx域名访问返回404问题排查指南
核心可能原因
- 访问域名时未携带对应端口:当前配置中Nginx监听的是1337端口,直接输入域名访问默认会请求80端口,若80端口未配置对应域名的服务规则,Nginx会匹配默认站点返回404,这是最高概率触发问题的原因。
- 配置未生效:修改Nginx配置后未执行重载操作,新规则没有被加载。
- 多站点配置冲突:同一监听端口下存在优先级更高的同名server块,或者默认server块的根目录配置错误。
- 域名匹配异常:配置中
server_name字段填写的域名和实际访问的域名拼写不一致。 - 解析异常:域名实际未解析到目标服务器IP,或存在本地hosts覆盖、CDN代理等情况导致请求落到其他服务器。
分步排查方案
- 验证端口匹配情况
直接访问http://a.b.com:1337,如果可以正常打开站点,即可确认是端口问题。
解决方法二选一:
- 日常访问时域名后固定携带
:1337后缀 - 修改配置将监听端口改为80(HTTP默认端口),后续访问不需要加端口,配置示例如下:
server { server_name a.b.com; listen 80; listen [::]:80; root /var/www/a.b.com/src; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
- 验证配置有效性
执行命令nginx -t检查配置语法是否正确,确认返回success后执行nginx -s reload重载Nginx配置。 - 排查配置冲突
执行命令nginx -T(大写T)查看所有已加载的Nginx配置,核对监听对应端口的server块是否存在冲突,是否有默认server块的根路径配置错误。 - 验证域名解析
本地执行ping a.b.com或nslookup a.b.com,核对返回的IP地址是否和你的服务器公网IP一致。 - 日志排查
查看Nginx访问日志和错误日志(默认路径为/var/log/nginx/access.log、/var/log/nginx/error.log),确认域名访问的请求匹配到了哪个server块、请求的资源路径是否正确,即可定位根因。
内容的提问来源于stack exchange,提问作者simplesystems
相关产品推荐
相关产品推荐

