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

Nginx问题:仅指定端口时才能正常显示网站

Nginx问题:仅指定端口时才能正常显示网站

看起来你遇到的核心问题是:直接访问域名或IP(80端口)时跳转到域名商的页面,但访问IP:8081能正常显示网站。结合你给出的配置,我来一步步帮你排查解决:

第一步:检查Nginx配置是否生效

首先得确保你的配置没有语法错误,并且已经让Nginx重新加载了配置:

  • 先运行配置检查命令,确认语法没问题:
    sudo nginx -t
    
    如果输出test is successful就说明语法正常;要是有错误,跟着提示修改就行。
  • 然后重新加载Nginx,让新配置生效:
    sudo systemctl reload nginx
    

第二步:排查配置冲突问题

你在/etc/nginx/conf.d/new_sites.conf里的第一个server块设置了listen 80 default_server,而/etc/nginx/sites-available/default里也有一个带listen 80 default_server的server块。虽然/etc/nginx/sites-enabled是空的,但你得确认Nginx是否加载了这个default配置:

  • 打开主配置文件/etc/nginx/nginx.conf,看看有没有类似下面的行:
    include /etc/nginx/sites-available/*.conf;
    
    如果有的话,这个default配置会被加载,两个default_server会产生冲突,导致Nginx不知道用哪个server块处理请求。
  • 解决办法:要么直接删除/etc/nginx/sites-available/default文件,要么把文件里的listen 80 default_server;和listen [::]:80 default_server;注释掉,之后重新加载Nginx。

第三步:确认域名解析是否正确

访问域名时显示域名商的页面,大概率是域名还没正确解析到你的服务器IP:

  • 用ping命令测试域名解析结果:
    ping website.xyz
    
    看看返回的IP是不是你的服务器IP(123.456.78.901)。如果不是,说明你在域名商后台的解析记录设置错了,需要修改A记录指向你的服务器IP。
  • 注意:域名解析生效可能需要几分钟到几小时,取决于TTL设置,要是刚修改完,可以多等一会儿再测试。

第四步:验证Nginx的请求匹配逻辑

等上面的步骤都完成后,你可以测试:

  • 直接访问服务器IP(123.456.78.901),应该会跳转到website.xyz,并且显示你8081端口的网站内容。
  • 访问website.xyz,Nginx应该会把请求代理到localhost:8081,正常显示你的网站。

如果还是有问题,可以查看Nginx的日志找线索:

  • 访问日志路径通常是/var/log/nginx/access.log,能看到请求被哪个server块处理
  • 错误日志路径通常是/var/log/nginx/error.log,能看到请求过程中有没有报错

备注:内容来源于stack exchange,提问作者parsecer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 10:08:09