解决Nginx与Tomcat整合下无法加载JSP中静态资源的问题
程序员文章站
2022-07-05 22:03:55
背景:
最近需要整合新编写的实名注册模块,原系统是采用Nginx+PHP,而新编写的这个模块采用的是Tomcat+JSP,这个就需要好好的研究一下如何上线了,主要涉及到了Nginx的配...
背景:
环境 Ubuntu16.04最近需要整合新编写的实名注册模块,原系统是采用Nginx+PHP,而新编写的这个模块采用的是Tomcat+JSP,这个就需要好好的研究一下如何上线了,主要涉及到了Nginx的配置文件,因为Nginx静态代理的问题,我们需要在PHP中跳转到JSP页面中,但这也带来了很多问题:比如如何切换访问端口问题,比如JSP中的静态页面无法正常加载的问题。。
解决切换访问端口问题
可以看到Nginx的端口为80,而Tomcat的端口为8080,当访问localhost如何切换端口就成了问题
只需简单的在Nginx配置文件中:如果是apt-get安装方式的目录为:/etc/nginx/sites-available/下面的 default文件
只需要结合自己的文件夹,按照图中红箭头标记,即可实现当访问:http://localhost/index.jsp 时,Nginx会自动反代理到http://localhost:8080/index.jsp 中去。
解决JSP页面中JS/CSS等静态资源无法加载的问题
先上一张图,可以看到,我的请求资源有什么不同呢!答对了,那就是加上了绝对路径 http://localhost:8080/ 如果没有加上的话,那么JSP页面会默认取加载如下路径: http://localhost/………. 这是不可能加载得到的,所以当你碰到这种问题的时候,也可以尝试在JSP中添加绝对路径,而不是相对路径 ,有人尝试着在Nginx配置文件中加入静态资源配置文件,这样的做法只能满足使得Nginx加载,而无法解决我所碰到的问题,还有些人想到将PHP和JSP中的静态资源整合出来到一起,这样做的方式将会加大难度,且过程不可控,所以我采用了这种绝对路径的方式 完美解决这个问题.
小结
Nginx确实是一个很不错的东西,简单轻便,重点是优点太多,希望以后能够越来越熟悉它!