跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

宝塔面板如何安装Tomcat9并配置伪静态_在软件商店部署并结合Nginx进行反向代理

宝塔面板不提供Tomcat9安装选项,需手动部署官方二进制包;配置Nginx反向代理时须透传完整URI、禁用rewrite,并由Java应用处理路由,静态资源应由Nginx直接返回。 宝塔面板里根本不能直接安装 Tomcat9 宝塔软件商店只提供 Tomcat8(截至 2024 年底最新版仍为
tomcat8.5.96
),没有
Tomcat9
选项。强行点“安装”只会失败或静默跳过——这不是你操作问题,是官方没上架。想用 Tomcat9,必须手动部署。 手动安装 Tomcat9 的最小可行步骤 别碰源码编译,直接用官方二进制包最稳。以 CentOS 7/8 或 Ubuntu 20.04+ 为例: 用宝塔终端执行:
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.96/bin/apache-tomcat-9.0.96.tar.gz && tar -xzf apache-tomcat-9.0.96.tar.gz -C /www/server/ && mv /www/server/apache-tomcat-9.0.96 /www/server/tomcat9
改权限:
chown -R www:www /www/server/tomcat9
开放端口(如用 8080):
firewall-cmd --permanent --add-port=8080/tcp
(CentOS)或
ufw allow 8080
(Ubuntu),然后重载防火墙 启动验证:
/www/server/tomcat9/bin/startup.sh
,访问
http://你的IP:8080
看是否显示 Tomcat 默认页 注意:
startup.sh
依赖系统已装 JDK8+,宝塔自带的 JDK 通常够用;若报
JAVA_HOME not set
,在
/www/server/tomcat9/bin/setenv.sh
里加一行:
export JAVA_HOME=/www/server/jdk
(路径以宝塔实际 JDK 位置为准)。 Nginx 反向代理到 Tomcat9 的关键配置项 宝塔站点设置里“反向代理”功能生成的配置,默认不处理 Tomcat 的路径重写和静态资源缓存,容易导致 CSS/JS 404 或伪静态失效。必须手改配置: Nginx 在宝塔面板中轻松管理Nginx高性能Web服务器。提供可视化配置反向代理、负载均衡、SSL证书及HTTP缓存功能,一键优化高并发性能,助您高效搭建稳定、快速的网站运行环境。 下载 进入站点 → 配置文件,在
location /
块内替换为以下内容:
location / { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }
如果应用依赖路径前缀(比如部署在
/myapp
下),
proxy_pass
必须带尾部斜杠:
http://127.0.0.1:8080/myapp/
,且 Tomcat 的
server.xml
中
Context path
要保持一致 伪静态本质是 URL 重写,Tomcat 本身不支持 Nginx 那种
rewrite
指令;真正起作用的是后端 Java 应用(如 Spring Boot)的路由机制,Nginx 这层只需透传请求,别做多余 rewrite 为什么“伪静态”在 Tomcat 场景下常被误解 用户搜“Tomcat 伪静态”,往往其实是想让
/article/123
这样的地址被 Spring MVC 或其他框架正确识别,而不是真要 Nginx 改写 URL。这时候: 宝塔反向代理配置里加任何
rewrite
规则(比如把
/article/(.*)
转成
/index.jsp?id=$1
)都是错的——Tomcat 不吃这套,后端也收不到原始路径 正确做法:确保 Nginx 透传完整 URI,然后由 Java 应用自己解析路径;Spring Boot 默认就支持,无需额外配置 唯一需要 Nginx 干的,是把静态资源(
.js
、
.css
、
.png
)直接返回,避免走 Tomcat:在配置里加一个
location ~* \.(js|css|png|jpg|gif|ico)$
块,用
root
指向静态目录并
expires 1y
Tomcat9 自身没有 .htaccess 或类似机制,所有“URL 美化”逻辑都在应用层。别在 Nginx 层试图模拟 Apache 那套规则,越配越乱。

相关文章