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

如何在VPS服务器上无需端口号访问Tomcat部署的Web应用

去掉Tomcat URL端口号的几种实用方案

嘿,这个问题我熟!要去掉URL里的8080端口,直接用域名加应用路径访问,有几种实用的方案,我给你挨个说清楚,你根据自己的情况选:

方法一:直接修改Tomcat监听端口为80(最简单)

这是最直接的思路——把Tomcat的HTTP端口从8080改成默认的80端口,这样浏览器访问时会自动使用80端口,不需要手动输入。

操作步骤:

  • 找到你的Tomcat安装目录,进入conf文件夹,打开server.xml配置文件
  • 找到其中的Connector节点,看起来大概是这样:
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
  • 把port="8080"改成port="80",保存文件
  • 重启Tomcat服务让配置生效

注意:在Linux系统中,1024以下的端口需要root权限才能绑定。如果你的Tomcat是用普通用户运行的,有两个解决办法:

  1. 给Java进程添加绑定低端口的权限:setcap 'cap_net_bind_service=+ep' /path/to/your/tomcat/bin/java(替换成你实际的Java路径)
  2. 用root用户启动Tomcat(不推荐,存在安全风险)

方法二:用Nginx做反向代理(生产环境首选)

如果不想修改Tomcat的端口,或者担心root权限带来的安全问题,用Nginx做反向代理是更稳妥、更灵活的方案——不仅能隐藏8080端口,还能顺便实现负载均衡、静态资源缓存、HTTPS支持等功能。

操作步骤:

  1. 先安装Nginx:
    • Debian/Ubuntu系统:apt update && apt install nginx
    • CentOS/RHEL系统:yum install nginx
  2. 打开Nginx的站点配置文件,一般是/etc/nginx/sites-available/default(或者新建一个自定义配置文件)
  3. 在server块中添加反向代理规则,示例如下:
server {
    listen 80;
    server_name example.com; # 替换成你的域名

    # 第一个Web应用的代理规则
    location /webapp {
        proxy_pass http://localhost:8080/webapp;
        # 传递必要的请求头,避免Tomcat获取不到正确的客户端信息
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 如果有多个Web应用,复制上面的location块修改路径即可
    # location /another-app {
    #     proxy_pass http://localhost:8080/another-app;
    #     proxy_set_header Host $host;
    #     ... 其他header配置同上 ...
    # }
}
  1. 检查Nginx配置是否合法:nginx -t
  2. 如果提示test is successful,就重启Nginx生效:systemctl restart nginx

这样配置后,用户访问http://example.com/webapp时,Nginx会自动把请求转发到Tomcat的8080端口,完全看不到后端的端口号。

方法三:用iptables端口转发(临时应急)

如果只是临时需要隐藏端口,不想修改任何配置文件,可以用iptables把80端口的流量转发到8080:

  • 执行转发命令:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
  • 保存iptables规则(避免重启服务器后失效):
    • CentOS:service iptables save
    • Debian/Ubuntu:iptables-save > /etc/iptables/rules.v4

注意:这个方法会把所有80端口的请求都转发到8080,适合只有一个Web应用的场景;如果有多个应用,还是用Nginx更灵活。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:57:03