前面講了如何配置Nginx虛擬主機,你們能夠去這裏看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.htmlhtml
今天要說的是如何配置nginx和tomcat實現反向代理。nginx
須要說明的是:因爲本文章是nginx系列文章中的一篇,文章裏面不少其餘的配置,可能前面的文章已經說講過,而後後續就沒有在介紹,若是出現有些配置沒有講,你們可能須要去看看前面的文章。web
一般的代理服務器,只用於代理內部網絡對Internet的鏈接請求,客戶機必須指定代理服務器,並將原本要直接發送到Web服務器上的http請求發送到代理服務器中由代理服務器向Internet上的web服務器發起請求,最終達到客戶機上網的目的。這就是所謂的正向代理,通常就直接叫代理。apache
反向代理(Reverse Proxy)則是指以代理服務器來接受internet上的鏈接請求,而後將請求轉發給內部網絡上的服務器,並將從服務器上獲得的結果返回給internet上請求鏈接的客戶端,此時代理服務器對外就表現爲一個反向代理服務器。tomcat
Nginx 只作請求的轉發,後臺有多個http服務器提供服務,nginx的做用就是把請求轉發給後面的服務器,決定吧請求轉發給誰處理。服務器
以下圖:網絡
兩個tomcat服務經過nginx反向代理,本例子使用三臺虛擬機進行測試,app
nginx服務器:192.168.78.132webapp
tomcat1服務器:192.168.78.134jsp
tomcat2服務器:192.168.78.135
以下圖:
1. 兩臺 tomcat 服務器,我這裏使用的是使用apache-tomcat-7.0.57版本,在192.168.78.134和192.168.78.135虛擬機上啓動tomcat。
2. Nginx 服務器,這個以前安裝過,ip地址是:192.168.78.132
3. 修改兩個tomcat下的webapps/ROOT/index.jsp的內容,使用tomcat1和tomcat2兩個服務首頁顯示不一樣的內容。
4. 經過host文件指定aaa.test.com和bbb.test.com對應192.168.78.132虛擬機:修改window的hosts文件:(C:\Windows\System32\drivers\etc)
192.168.78.132 aaa.test.com 192.168.78.132 bbb.test.com
根據上邊的需求在nginx.conf文件中配置反向代理,以下:
#配置一個代理即tomcat1服務器 upstream tomcat_server1 { server 192.168.78.134:8080; } #配置一個代理即tomcat2服務器 upstream tomcat_server2 { server 192.168.78.135:8080; } #配置一個虛擬主機 server { listen 80; server_name aaa.test.com; location / { #域名aaa.test.com的請求所有轉發到tomcat_server1即tomcat1服務上 proxy_pass http://tomcat_server1; #歡迎頁面,按照從左到右的順序查找頁面 index index.jsp index.html index.htm; } } server { listen 80; server_name bbb.test.com; location / { #域名bbb.test.com的請求所有轉發到tomcat_server2即tomcat2服務上 proxy_pass http://tomcat_server2; index index.jsp index.html index.htm; } }
分別訪問aaa.test.com、bbb.test.com測試反向代理。
經過上面的截圖能夠看出:
請求訪問aaa.test.com經過nginx代理訪問tomcat1,
請求訪問bbb.test.com經過nginx代理訪問tomcat2。
以上,就把如何配置nginx和tomcat實現反向代理講完了。雖然步驟比較多,可是操做起來仍是比較簡單的。