Tomcat+Nginx搭建集群
Nginx配置過程如下:
(1)到Nginx官網下載Nginx的Windows版本:點擊打開鏈接(這里我們使用nginx/Windows-1.4.7版本進行實驗)
(2)解壓到磁盤任意目錄,例如這里我解壓到虛擬機1中:C:\software\nginx-1.4.7
(3)啟動、停止和重新加載服務:通過cmd以守護進程方式啟動nginx.exe:start nginx.exe,停止服務:nginx-s stop,重新加載配置:nginx -s reload;
修改Nginx核心配置文件nginx.conf
(1)進程數與每個進程的最大連接數:
?nginx進程數,建議設置為等于CPU總核心數
?單個進程最大連接數,那么該服務器的最大連接數=連接數*進程數
(2)Nginx的基本配置:
?監聽端口一般都為http端口:80;
?域名可以有多個,用空格隔開:例如 server_name www.sohu.com baidu.com;

(3)負載均衡列表基本配置:
?location/ {}:對什么樣的后綴進行負載均衡請求,假如我們要對所有的aspx后綴的文件進行負載均衡時,可以這樣寫:location ~ .*\.aspx$ {}
?proxy_pass:請求轉向自定義的服務器列表,這里我們將請求都轉向標識為http://netitcast.com;的負載均衡服務器列表;
?在負載均衡服務器列表的配置中,weight是權重,可以根據機器配置定義權重(如果某臺服務器的硬件配置十分好,可以處理更多的請求,那么可以為其設置一個比較高的weight;而有一臺的服務器的硬件配置比較差,那么可以將前一臺的weight配置為weight=2,后一臺差的配置為weight=1)。weigth參數表示權值,權值越高被分配到的幾率越大;

以上僅僅是nginx的基礎配置
測試說明:
分別向兩臺虛擬機中的tomcat服務器中部署hjy.war這個web項目(為了以示訪問的是不同的web服務器,我們的兩臺虛擬機中部署的hjy這個項目在頁面顯示上略有不同),虛擬機1中,頁面顯示test1,虛擬機2中頁面顯示test2
注:1,254是虛擬機1,配置的權重為2,
2,nginx部署到254這臺機子上了
啟動nginx,并啟動兩臺虛擬機的tomcat

運行結果:
訪問nginx:http://localhost/hjy/test.jsp

由于權重的不同,在我們不斷刷新頁面的過程中,顯示test1的可能性會大一些
擴展:添加Nginx對于靜態文件的緩存配置
為了提高響應速度,減輕真實服務器的負載,對于靜態資源我們可以在反向代理服務器中進行緩存,這也是反向代理服務器的一個重要的作用。
(1)緩存靜態資源之圖片文件
root/nginx-1.4.7/staticresources/image:對于配置中提到的jpg/png等文件均定為到/nginx-1.4.7/staticresources/image文件夾中進行尋找匹配并將文件返回;
expires7d:過期時效為7天,靜態文件不怎么更新,過期時效可以設大一點,如果頻繁更新,則可以設置得小一點;
tips:下面的樣式、腳本緩存配置同這里一樣,只是定位的文件夾不一樣而已,不再贅述。

(2)緩存靜態資源之樣式文件

(3)緩存靜態資源之腳本文件

(4)在nginx服務文件夾中創建靜態資源文件夾,并要緩存的靜態文件拷貝進去:這里我主要將Web程序中用到的image、css以及js文件拷貝了進去;

(5)總結:通過配置靜態文件的緩存設置,對于這些靜態文件的請求可以直接從反向代理服務器中直接返回,而無需再將這些靜態資源請求轉發到具體的Web服務器進行處理了,可以提高響應速度,減輕真實Web服務器的負載壓力。
總結:
本文中我們使用Nginx在Windows環境下搭建了一個反向代理服務,并模擬了一個Tomcat服務器集群的負載均衡效果。從這個demo中,我們可以簡單地感受到反向代理為我們所做的事情,并體會負載均衡是怎么一回事。
附:
每次以cmd方式啟動Nginx服務不符合實際要求,于是我們想到將其注冊為Windows服務,并設置為自動啟動模式。這里,我們使用一個不錯的小程序:“WindowsService Wrapper”,將nginx.exe注冊為Windows服務,具體的步驟如下:
①下載最新版的 Windows Service Wrapper 程序,比如我下載的名稱是 “winsw-1.8-bin.exe”(本文底部有下載地址),然后把它命名成你想要的名字(比如:“nginx-service.exe”,當然,你也可以不改名)
②將重命名后的 nginx-service.exe 復制到 nginx 的安裝目錄(比如,我這里是 “D:\Servers\nginx-1.4.7″)
③在同一個目錄下創建一個Windows Service Wrapper 的XML配置文件,名稱必須與第一步重命名時使用的名稱一致(比如我這里是 “nginx-service.xml”, 如果,你沒有重命名,則應該是 “winsw-1.8-bin.xml”),這個XML的內容如下:
<?xmlversion="1.0" encoding="UTF-8"?> <service> <id>nginx</id> <name>Nginx Service</name> <description>High Performance NginxService</description> <executable>D:\Servers\nginx-1.4.7\nginx.exe</executable> <logpath>D:\Servers\nginx-1.4.7\</logpath> <logmode>roll</logmode> <depend></depend> <startargument>-p D:\Servers\nginx-1.4.7</startargument> <stopargument>-p D:\Servers\nginx-1.4.7 -sstop</stopargument> </service>
④在命令行下執行以下命令,以便將其注冊成Windows服務:nginx-service.exe install
⑤接下來就可以在Windows服務列表看到Nginx服務了,這里我們可以將其設置為自動啟動了:

(5)總結:在Windows環境中,要對外提供的Windows服務一般都要將其啟動類型設置為自動。
來自: http://blog.csdn.net/hejingyuan6/article/details/47262419