nginx結合tomcat一起使用


反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器。

這里講得很直白。反向代理方式實際上就是一台負責轉發的代理服務器(Nginx),貌似充當了真正服務器的功能,但實際上並不是,代理服務器只是充當了轉發的作用,並且從真正的服務器(Tomcat)那里取得返回的數據。這樣說,其實nginx完成的就是這樣的工作。我們讓nginx監聽一個端口,譬如80端口,但實際上我們轉發給在8080端口的tomcat,由它來處理真正的請求,當請求完成后,tomcat返回,但數據此時沒直接返回,而是直接給nginx,由nginx進行返回,這里,我們會以為是nginx進行了處理,但實際上進行處理的是tomcat。

實際上,我們配置了Nginx反向代理后,系統的物理結構可能是下面這樣子的,當我們訪問一個域名/IP地址時,實際訪問的是我們配置的Nginx服務器,Nginx服務器的真實身份只是代理,它代理了許多不同的真正服務器(如下圖中的Tomcat,Resin,IIS等)。

 

雖然配置反向代理比較麻煩,但是它的作用性還是很大滴。一方面是為了安全性考慮,另一方面是提供應用的訪問性能。說到上面的方式,也許很多人又會想起來,這樣可以把靜態文件交由nginx來進行處理。對,很多用到nginx的地方都是作為靜態伺服器,這樣可以方便緩存那些靜態文件,比如CSS,JS,html,htm等文件。

接下來配置Ngin的反向代理Tomcat。

1. 前期准備

    nginx 安裝成功

    tomcat 安裝成功

2. 更改nginx的配置文件

    更改nginx.conf文件,在http/server/location層次結構下,添加proxy_pass http://localhost:7080; 一句話即可。注意不要放了;結尾。

3. 重啟nginx,在瀏覽器中輸入nginx的訪問地址,顯示的就是Tomcat的訪問地址。

4. 現在雖然nginx反向代理成功了,但是為了更好的發揮nginx的性能。我們將Tomcat的js、html、圖片等靜態文件配置到nginx上進行緩存,這樣就可以提高應用的訪問效率了。

5. 刪除 location / 節點,避免全部請求被攔截。新增 location ~ \.jsp$ 節點和 location ~ \.(html|js|css|png|gif|jpg)$ 節點,如下圖。

6. 訪問http://10.0.6.108:7788,返回nginx 404。這是因為匹配的location,應用自動跳轉到nginx的404.

    訪問http://10.0.6.108:7788/index.jsp,返回到tomcat頁面。因為jsp會自動匹配配置的location。

    訪問http://10.0.6.108:7788/tomcat.png,也能正確顯示tomcat的logo。說明nginx配置的靜態文件location是生效的。

    至此,Nginx配置反向代理Tomcat完成。

 

參考文章:

http://www.360doc.com/myindex.aspx

http://www.linuxidc.com/Linux/2015-03/115208.htm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM