欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

解决Nginx与Tomcat整合下无法加载JSP中静态资源的问题

程序员文章站 2022-07-05 22:03:55
背景: 最近需要整合新编写的实名注册模块,原系统是采用Nginx+PHP,而新编写的这个模块采用的是Tomcat+JSP,这个就需要好好的研究一下如何上线了,主要涉及到了Nginx的配...

背景:

最近需要整合新编写的实名注册模块,原系统是采用Nginx+PHP,而新编写的这个模块采用的是Tomcat+JSP,这个就需要好好的研究一下如何上线了,主要涉及到了Nginx的配置文件,因为Nginx静态代理的问题,我们需要在PHP中跳转到JSP页面中,但这也带来了很多问题:比如如何切换访问端口问题,比如JSP中的静态页面无法正常加载的问题。。

环境 Ubuntu16.04

解决切换访问端口问题

可以看到Nginx的端口为80,而Tomcat的端口为8080,当访问localhost如何切换端口就成了问题
解决Nginx与Tomcat整合下无法加载JSP中静态资源的问题

只需简单的在Nginx配置文件中:如果是apt-get安装方式的目录为:/etc/nginx/sites-available/下面的 default文件

只需要结合自己的文件夹,按照图中红箭头标记,即可实现当访问:http://localhost/index.jsp 时,Nginx会自动反代理到http://localhost:8080/index.jsp 中去。

解决Nginx与Tomcat整合下无法加载JSP中静态资源的问题

解决JSP页面中JS/CSS等静态资源无法加载的问题

先上一张图,可以看到,我的请求资源有什么不同呢!答对了,那就是加上了绝对路径 http://localhost:8080/ 如果没有加上的话,那么JSP页面会默认取加载如下路径: http://localhost/………. 这是不可能加载得到的,所以当你碰到这种问题的时候,也可以尝试在JSP中添加绝对路径,而不是相对路径 ,有人尝试着在Nginx配置文件中加入静态资源配置文件,这样的做法只能满足使得Nginx加载,而无法解决我所碰到的问题,还有些人想到将PHP和JSP中的静态资源整合出来到一起,这样做的方式将会加大难度,且过程不可控,所以我采用了这种绝对路径的方式 完美解决这个问题.

解决Nginx与Tomcat整合下无法加载JSP中静态资源的问题

解决Nginx与Tomcat整合下无法加载JSP中静态资源的问题

小结

Nginx确实是一个很不错的东西,简单轻便,重点是优点太多,希望以后能够越来越熟悉它!