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

Nginx未将80端口请求转发至8080端口问题求助

问题原因

你的Nginx配置中server_name仅指定了域名example.com和www.example.com,当直接访问服务器IP时,Nginx会优先匹配默认的server块(通常是/etc/nginx/sites-available/default),因此显示默认的欢迎页面,而非转发到Tomcat。

解决方法

以下几种方案任选其一即可:

方案1:让IP访问也转发到Tomcat

修改你的/etc/nginx/sites-available/tomcat.conf,通过两种方式让IP请求匹配到Tomcat的反向代理配置:

  • 方法A:把服务器IP添加到server_name列表中
    server {
            listen 80;
            # 替换成你的实际服务器IP
            server_name example.com www.example.com 192.168.1.100;
            access_log /var/log/nginx/tomcat-access.log;
            error_log /var/log/nginx/tomcat-error.log;
    
            location / {
                    proxy_set_header X-Forwarded-Host $host;
                    proxy_set_header X-Forwarded-Server $host;
                    proxy_set_header X-Forwarded-For $remote_addr;
                    proxy_pass http://127.0.0.1:8080;
            }
    }
    
  • 方法B:将该server块设为默认(所有未匹配到指定server_name的请求都会走这个块)
    server {
            listen 80 default_server;
            listen [::]:80 default_server; # 不需要IPv6支持可删除此行
            server_name example.com www.example.com;
            access_log /var/log/nginx/tomcat-access.log;
            error_log /var/log/nginx/tomcat-error.log;
    
            location / {
                    proxy_set_header X-Forwarded-Host $host;
                    proxy_set_header X-Forwarded-Server $host;
                    proxy_set_header X-Forwarded-For $remote_addr;
                    proxy_pass http://127.0.0.1:8080;
            }
    }
    

方案2:禁用默认的server块

删除默认站点的软链接,让Nginx仅加载你配置的Tomcat反向代理规则:

sudo unlink /etc/nginx/sites-enabled/default
最后验证并重启Nginx

无论采用哪种方案,都需要先验证配置语法合法性,再重启Nginx使修改生效:

# 检查配置是否有语法错误
sudo nginx -t
# 重启Nginx服务
sudo systemctl restart nginx

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:13:27