反向代理(reverse?proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器。
這里講得很直白。反向代理方式實際上就是一臺負責轉發的代理服務器(nginx),貌似充當了真正服務器的功能,但實際上并不是,代理服務器只是充當了轉發的作用,并且從真正的服務器(Tomcat)那里取得返回的數據。這樣說,其實nginx完成的就是這樣的工作。我們讓nginx監聽一個端口,譬如80端口,但實際上我們轉發給在8080端口的tomcat,由它來處理真正的請求,當請求完成后,tomcat返回,但數據此時沒直接返回,而是直接給nginx,由nginx進行返回,這里,我們會以為是nginx進行了處理,但實際上進行處理的是tomcat。
實際上,我們配置了Nginx反向代理后,系統的物理結構可能是下面這樣子的,當我們訪問一個域名/IP地址時,實際訪問的是我們配置的Nginx服務器,Nginx服務器的真實身份只是代理,它代理了許多不同的真正服務器。
雖然配置反向代理比較麻煩,但是它的作用性還是很大滴。一方面是為了安全性考慮,另一方面是提供應用的訪問性能。說到上面的方式,也許很多人又會想起來,這樣可以把靜態文件交由nginx來進行處理。對,很多用到nginx的地方都是作為靜態伺服器,這樣可以方便緩存那些靜態文件,比如CSS,JS,html,htm等文件。
接下來配置Ngin的反向代理Tomcat。
更改nginx的配置文件
更改nginx.conf文件,在http/server/location層次結構下,添加proxy_pass http://localhost:7080; 一句話即可。注意不要放了;結尾。
重啟nginx,在瀏覽器中輸入nginx的訪問地址,顯示的就是Tomcat的訪問地址。
現在雖然nginx反向代理成功了,但是為了更好的發揮nginx的性能。我們將Tomcat的js、html、圖片等靜態文件配置到nginx上進行緩存,這樣就可以提高應用的訪問效率了。
更多Nginx相關技術文章,請訪問Nginx使用教程欄目進行學習!