在实际生产中,Tomcat服务器通常不单独使用在项目中,对于静态资源的响应Nginx表现的比较好,另外因为nginx是专门用于反向代理的服务器,因此很容易实现将java的请求转发到后端交给tomcat容器处理,而自己用来处理静态资源php
在Nginx中,一个server {}块每每用来配置一个比较大的项目,通常就是对于一个域名的全部配置,一个server块内通常有多个location来定义多个请求规则,好比域名和根目录配置,静态资源支持,php fastcgi请求,url重写,错误页面配置等多种配置,因此nginx代理tomcat和前面的转发php-fpm同样,就是将请求转发到后端的动态模块去处理该请求java
下面在server中简单配置一个location局部规则,将指定的nginx请求转发至tomcat容器nginx
假设tomcat已经正常运行,端口号为8080,首先使用vim编辑nginx.conf配置文件,好比: vim /usr/local/nginx/nginx.conf vim
而后在server {}块最后,补充下面的内容:后端
location ^~ /tomcat/ { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
由于上面配置了php-fpm的支持,因此这里使用/tomcat/请求来肯定是否转发到tomcat容器,前面的^~就是匹配任意的域名或者IP地址部分,因此当访问http://ip/tomcat这样的请求时,那么tomcat容器就会起做用,和访问http://ip:8080效果是同样的,包括容器下的项目都是彻底同样的tomcat
保存以后,从新载入nginx配置文件: /usr/local/nginx/nginx -s reload 服务器
固然这里的location能够配置好多个,从而代理到多个服务器上的tomcat,也能够自由配置多个server {}块,代理到多个服务器,这之间都是根据本身的须要灵活配置的,另外加上静态资源规则等配置,能够实现强大的功能,好比配置负载均衡,实现网站的高并发访问以及图片服务器的资源共享等等并发