在實際生產中,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 {}塊,代理到多個服務器,這之間都是根據本身的須要靈活配置的,另外加上靜態資源規則等配置,能夠實現強大的功能,好比配置負載均衡,實現網站的高併發訪問以及圖片服務器的資源共享等等併發