Tomcat环境变量配置与Nginx反向代理

冬明吖_1451

冬明吖_1451

2026-09-09

959人浏览

原创

tomcat启动失败、java -version报错、nginx转发404/502,主因是java_home配置错误或未生效,以及proxy_pass末尾斜杠缺失/冗余导致路径拼接异常;须验证jdk路径真实性、source /etc/profile生效、echo $java_home与java -version双确认,且proxy_pass结尾有/才可剥离location前缀正确转发。

tomcat环境变量配置与nginx反向代理

Tomcat 启动失败、java -version 报错、Nginx 转发后页面 404 或 502,八成是环境变量或 proxy_pass 路径没对齐——不是 JDK 没装,而是 JAVA_HOME 指向错误或未生效;不是 Nginx 配错了,而是 proxy_pass 后面多/少/斜杠导致路径拼接异常。

JAVA_HOME 配错或未生效的典型表现

Tomcat 启动时直接报 No JAVA_HOME 或 Unable to find a Java Runtime Environment;执行 java -version 显示命令未找到,但 /usr/java/jdk1.8.0_201-amd64/bin/java -version 却能运行成功。

  • 确认 JDK 安装路径是否真实存在:ls /usr/java/jdk1.8.0_201-amd64,别直接抄网上的路径,版本号和架构(amd64/arm64)必须匹配
  • /etc/profile 中的 JAVA_HOME 必须用绝对路径,且不能带空格或中文,例如:export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
  • 改完后必须执行 source /etc/profile,否则新终端才生效;当前终端不生效就等于没配
  • 验证是否生效:运行 echo $JAVA_HOME 和 java -version,两个都返回预期结果才算过关

nginx.conf 中 proxy_pass 路径带/与不带/的区别

这是 Nginx + Tomcat 反向代理最常踩的坑:请求 URL 是 /api/user,但 Tomcat 实际只监听 /user,结果 404;或者请求本该进 ROOT 应用,却转发到了 /ROOT/api/user,结果 500。

Nginx Hosting
Nginx Hosting

通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。

下载
  • proxy_pass http://127.0.0.1:8080;(结尾无 /):Nginx 会把 location /api/ 的完整 URI(含 /api)原样拼到后端地址后,即转发为 http://127.0.0.1:8080/api/user
  • proxy_pass http://127.0.0.1:8080/;(结尾有 /):Nginx 会剥离 location 匹配前缀,再拼接,即 location /api/ { proxy_pass http://127.0.0.1:8080/; } 会把 /api/user 转为 http://127.0.0.1:8080/user
  • Tomcat 默认应用部署在 webapps/ROOT,所以若想让 example.com/ 直接访问 ROOT,location / 对应的 proxy_pass 尾部必须加 /,否则会变成 http://127.0.0.1:8080//(双斜杠),触发 502

Tomcat 多实例共存时 server.xml 端口冲突检查点

启动第二个 Tomcat 实例时报 Address already in use: bind,说明至少一个端口被占。Tomcat 的 server.xml 里有 3 个关键端口必须互斥:

  • Server port(默认 8005):用于 shutdown 命令通信,每个实例必须不同,如 8005 / 8006
  • Connector port(默认 8080):HTTP 请求入口,如 8080 / 8081,Nginx 的 proxy_pass 必须指向这个端口
  • AJP port(默认 8009):如果用 AJP 协议反代(非主流),也得改,如 8009 / 8010
  • 改完后务必用 netstat -tuln | grep :8081 确认端口未被其他进程占用,再启动 Tomcat

SELinux 和防火墙导致 502 的排查顺序

Nginx 日志里出现 connect() failed (13: Permission denied) 或 Connection refused,但 curl http://127.0.0.1:8080 在本机能通,大概率是 SELinux 拦截了 Nginx 进程的网络 outbound 权限,或防火墙没放行 Tomcat 端口。

  • 临时关闭 SELinux 测试:setenforce 0;若恢复后正常,说明需永久放行:setsebool -P httpd_can_network_connect 1
  • 检查防火墙是否放行 Tomcat 端口(如 8081):firewall-cmd --list-ports;没看到就加:firewall-cmd --add-port=8081/tcp --permanent && firewall-cmd --reload
  • 不要只查 Nginx 的 80 端口是否开放——那是客户端进来的路,真正要通的是 Nginx 出去连 Tomcat 的那条路

最麻烦的不是配置写错,而是改了配置却不重启对应服务,或者重启了但没检查日志:Nginx 要 nginx -t && systemctl reload nginx,Tomcat 要 ./shutdown.sh && ./startup.sh,然后立刻看 tail -f logs/catalina.out 和 journalctl -u nginx -f,否则所有“看起来没问题”的操作都是空中楼阁。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.26

725

5

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

304

5

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

489

5

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

285

5

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

328

5

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

329

5

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

561

5

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

302

5

有哪些常见的tomcat漏洞
有哪些常见的tomcat漏洞

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

2413

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习