1. 程式人生 > >Windows下nginx+tomcat實現簡單的負載均衡

Windows下nginx+tomcat實現簡單的負載均衡

Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。
反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從服務
器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個反向代理伺服器。客戶端不需要任何配置就可以
訪問。反向代理是感知不到的。
正向代理,是一個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理髮送一個請求並
指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設定才能使用正向
代理。正向代理可以感知。
nginx支援配置反向代理,通過反向代理實現網站的負載均衡。


一、nginx的下載
官網:http://nginx.org/en/download.html

 


下載裡面的最新穩定版 Stable version nginx/Windows-1.14.1
下載下來是個壓縮包nginx-1.14.1.zip,解壓如下

 


確保預設80埠沒被使用,雙擊nginx.exe,在瀏覽器位址列輸入localhost,可看到如下介面

 

二、nginx的常用命令(在cmd命令列下定位到nginx目錄)
start nginx 開啟nginx
nginx -v     顯示 nginx 的版本。
nginx -s stop 快速關閉Nginx,可能不儲存相關資訊,並迅速終止web服務。

nginx -s quit  平穩關閉Nginx,儲存相關資訊,有安排的結束web服務。

nginx -s reload 修改Nginx配置資訊後,不需要關閉nginx後重新啟動nginx,可讓改動生效。

nginx -s reopen 重新開啟日誌檔案。

nginx -c filename 為 Nginx 指定一個配置檔案,來代替預設的。

nginx -t      不執行,僅測試配置檔案。nginx 將檢查配置檔案的語法正確性,並嘗試開啟配置檔案中所引用到的檔案。


三、簡單實現負載均衡

1、準備兩個tomcat,本次測試用apache-tomcat-9.0.0.M15,影印一份,分別重新命名為apache-tomcat-9.0.0.M15-1、apache-tomcat-
9.0.0.M15-2

 

2、修改這兩個tomcat的各3個埠,其中第一個tomcat的啟動埠為10001,第2個tomcat的啟動埠為10002,開啟tomcat的conf目錄下
的server.xml,修改如下:

apache-tomcat-9.0.0.M15-1

<Server port="10011" shutdown="SHUTDOWN"> (原來是8005)
<Connector port="10001" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> (原來是8080)
<Connector port="10021" protocol="AJP/1.3" redirectPort="8443" /> (原來是8009)

apache-tomcat-9.0.0.M15-2

<Server port="10012" shutdown="SHUTDOWN"> (原來是8005)
<Connector port="10002" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> (原來是8080)
<Connector port="10023" protocol="AJP/1.3" redirectPort="8443" /> (原來是8009)


為了下面nginx區分訪問的是哪一個tomcat,修改上面兩個tomcat的預設頁面webapps\ROOT\index.jsp,簡單加個標識,
訪問http://localhost:10001,標識“Apache Tomcat/9.0.0.M15 ------tomcat1”,如下

 


訪問http://localhost:10002,標識“Apache Tomcat/9.0.0.M15 ------tomcat2”,如下

 


3、修改nginx配置檔案
D:\javatool\nginx-1.14.1\conf\nginx.conf
因為我本機的80埠被佔用了,所以修改nginx的埠為10000,詳細見下圖:

 


4、啟動nginx
在命令列下start nginx後,一個視窗一閃而過,可以在cmd命令視窗輸入命令 tasklist /fi "imagename eq nginx.exe" ,出現如下結
果說明啟動成功

 

5、瀏覽器訪問http://localhost:10000

可看到訪問的是http://localhost:10001或http://localhost:10002,
手工重新整理,可看到兩者的訪問比例是1:2,就是上面nginx.conf配置的weight值1和2。