需要用到:
nginx 官網地址:http://nginx.org/ 來做反向代理 Windows版本下載地址:http://nginx.org/en/download.html
tomcat 官網:http://tomcat.apache.org/
memcached 官網:http://memcached.org/ 用memcached實現session共享
- tomcat集群
以我的為例,我用的tomcat版本是 apache-tomcat-7.0.68
- 現將tomcat文件夾復制成多份(ps:命名為apache-tomcat-7.0.68_1、apache-tomcat-7.0.68_2……)
- 修改端口號,修改conf文件夾下的server.xml配置文件(以apache-tomcat-7.0.68_1為例)
(1)、第一處端口修改

<!-- 修改port端口:18888 兩個tomcat不能重復,端口隨意,別太小--> <Server port="18888" shutdown="SHUTDOWN">
(2)、第二處端口修改

<!-- port="28888" tomcat監聽端口,隨意設置,別太小 --> <Connector port="28888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
(3)、第三處端口修改

<Connector port="8888" protocol="AJP/1.3" redirectPort="8443" />
其他tomcat配置一樣, 不同的tomcat的端口別重復,這樣能保證啟動起來。
- nginx的安裝與配置
1、解壓縮包(我的版本是穩定版1.8.1)
2、打開conf打開nginx.conf進行配置(nginx作為前端反向代理服務器的配置),在#gzip on這句代碼之后加上

<!--根據ip計算將請求分配各那個后端tomcat,許多人誤認為可以解決session問題,其實並不能。 --> <!--同一機器在多網情況下,路由切換,ip可能不同--> upstream localhost { server localhost:8088 weight=1; server localhost:8888 weight=1; }
可以修改端口號:listen 后面的數字保證端口號不能重復
location的配置:
3、啟動nginx
啟動DOS環境,進入nginx的目錄,輸入start nginx 啟動
如果更改了nginx.conf文件輸入nginx -s reload 重新加載文件,再輸入nginx -t看文件代碼是否有問題,如出現上圖所示則沒有問題。然后再次start nginx啟動nginx;
4、驗證配置與測試負載均衡
首先測試nginx配置是否正確,測試命令:nginx -t (默認驗證:conf\nginx.conf),也可以指定配置文件路徑。
其次驗證tomcat,啟動兩個tomcat,查看是否成功啟動。
這里我在tomcat下面布置了項目MyWebTest,啟動tomcat后在瀏覽器輸入地址,顯示如下圖:
最后驗證配置負載均衡設置,輸入地址:http://localhost:86/MyWebTest/index.jsp,出現如下兩種情況:
至此window下nginx+tomcat負載均衡配置結束,關於tomcat Session的問題通常是采用memcached;如果tomcat過多不建議session同步,server間相互同步session很耗資源,高並發環境容易引起Session風暴。請根據自己應用情況合理采納session解決方案。
- memcached的配置
1、Memcached配置需要下載以下jar包並放在tomcat的lib目錄下
2、配置tomcat
在tomcat中conf目錄下的context.xml,在<Context>標簽中加入以下代碼即可

<!--n1:localhost:11211中的11211與memcached端口號一致(它的默認端口號為11211)--> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:localhost:11211" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false" />
3、memcached的下載安裝
(1)如果你的機器是windows系統,需要從網上下載一個windows版本的
(2)解壓memcached安裝包,啟動DOS環境,進入memcached的目錄,輸入memcached.exe -d install命令安裝memcached
(3)、然后輸入memcached.exe -s start啟動memcached
4、驗證是否成功,session是否共享
以下是我的部分測試代碼:
輸入地址:http://localhost:86/MyWebTest/index.jsp查看是否達到預期效果。