在實際生產中,tomcat伺服器一般不單獨使用在專案中,對於靜態資源的回應nginx表現的比較好,另外由於nginx是專門用於反向代理的伺服器,所以很容易實現將java的請求轉送到後端交給tomcat容器處理,而本身用來處理靜態資源
在nginx中,一個server {}區塊往往用來配置一個比較大的項目,一般就是對於一個網域的所有配置,一個server區塊內一般有多個location來定義多個請求規則,例如網域和根目錄配置,靜態資源支持,php fastcgi請求,url重寫,錯誤頁面配置等多種配置,所以nginx代理tomcat和前面的轉送php-fpm一樣,就是將請求轉送到後端的動態模組去處理該請求
下面在server中簡單設定一個location局部規則,將指定的nginx請求轉送至tomcat容器
#假設tomcat已經正常運行,連接埠號碼為8080,首先使用vim編輯nginx.conf設定文件,例如: vim /usr/local/nginx/nginx.conf
然後在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效果是一樣的,包括容器下的專案都是完全一樣的
儲存之後,重新載入nginx設定檔: /usr/local/nginx/nginx -s reload
當然這裡的location可以配置好多個,從而代理到多個伺服器上的tomcat,也可以自由配置多個server {}塊,代理到多個伺服器,這之間都是根據自己的需要靈活配置的,另外加上靜態資源規則等配置,可以實現強大的功能,例如配置負載平衡,實現網站的高並發訪問以及圖片伺服器的資源共享等等
以上是Nginx怎麼反向代理到Tomcat伺服器中的詳細內容。更多資訊請關注PHP中文網其他相關文章!