一,準備工具和軟件:
1,nginx
nginx是一個高性能的 HTTP 和 反向代理 服務器, 它最大的特點是對高併發的支持和高效的負載均衡,這裏用到的版本是nginx-1.7.4
請根據實際需要選擇下載相應的版本。
2,tomcat
它是一款免費的Web應用服務器,這裏用到的版本是tomcat7.0
3,redis
Redis 是一個高性能的key-value數據庫,對關係數據庫起到很好的補充作用,它將數據存儲在內存中,保證了讀取效率,同時它還支持主從同步。
4,下載地址
Nginx,tomcat,redis下載地址:1, http://redis.io/download
3, http://nginx.org/en/download.html
*注意:這裏下載的都是免安裝版,即解壓後可以直接使用的。
二,需要用到的jar包
commons-pool-1.5.4,tomcat-redis-session-manager-1.2,jedis-2.1.0
請將下好的這三個包拷貝到tomcat的lib目錄下,由於配置集羣要用到多個tomcat,所以每個tomcat的lib目錄下都要有這些包。
三,配置步驟
1,解壓下載文件
解壓nginx-1.674.zip到E:\nginx-1.7.4\ nginx-1.7.4目錄下
解壓apache-tomcat-7.0.6到 E:\apache-tomcat-7.0.6目錄下
以上目錄是我解壓的目錄,具體放到哪個目錄,根據實際情況修改。
2,配置tomcat
1,由於是搭建集羣環境,所以要用到多個tomcat,這裏我將解壓好的tomcat拷貝一份,重命名爲apache-tomcat-7.0.7:(如果用到三個或三個以上tomcat,依次同理)
2,打開apache-tomcat-7.0.7下conf
3,爲了不與原先tomcat的端口重複,修改server.xml文件
修改原本的8005端口,這裏我改爲8015,請根據自己需要自行修改爲沒被佔用的端口
修改原本的8080端口改爲8081,請根據自己需要自行修改爲沒被佔用的端口
修改原本的8009端口改爲8019,請根據自己需要自行修改爲沒被佔用的端口
3,配置redis的session共享,同時修改E:\apache-tomcat-7.0.6\conf\context.xml、E:\apache-tomcat-7.0.7\conf\context.xml文件,在context節點中增加紅圈中的部分。
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="192.168.23.14"
port="6379"
password="ylwl"
database="3"
maxInactiveInterval="60" />
配置中各個字段含義:
host:redis服務器ip地址
port:redis端口
password:redis數據庫安全密碼,若沒設置密碼,該字段可以去掉(網上大部分配置教程都不加該字段,但我在本地測試是會報連接被拒絕,經驗證加入該字段後則可以連接)
database:數據庫名,默認爲0,請根據實際需要修改
maxInactiveInterval:session最大不活動時間,單位秒
3,配置nginx
找到 E:\nginx-1.7.4\ nginx-1.7.4\conf\nginx.conf 配置文件
1,在 #gzip on; 這一行後面增加以下配置:
upstream yycpsfora {
server localhost:8080;
server localhost:8081;
}
*注意:這裏的server指的是你配置的tomcat服務器的ip地址和端口,localhost表示我在本地配置了兩個tomcat,它們的端口分別是8080和8081,你可以根據實際需要添加更多的tomcat配置
2,修改server 的端口和服務名如下:
3,在location /大括號中增加如下配置:
location / {
root html;
index index.html index.htm index.jsp;
add_header Cache-Control 'no-store';
client_max_body_size 100m;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_cache Z;
proxy_cache_valid 200 1m;
proxy_pass http://yycpsfora;
}
*特別注意:proxy_pass的值http://yycpsfora中的yycpsfora要與步驟1中的yycpsfora一樣
四,集羣測試
1, 分別啓動兩個tomcat實例,然後啓動nginx,然後在瀏覽器中輸入:http://localhost:800 將會出現以下結果,說明配置成功了:
2,訪問http://localhost:800/yycpsfora/,開始測試
五,備註(開發人員注意)
若要配置session共享,需要對項目中的實體類進行序列化,如此才能在網絡中傳輸,即實體類需要implements java.io.Serializable,否則在訪問項目時會報錯
以上yycpsfora爲項目名