關于Nginx+tomcat+memcached(緩存)配置叢集負載均衡的下載下傳與安裝流程:
實作的整體步驟
一:安裝memcached。(memcached可以一個或者多個)
二:安裝兩個tomcat
三:配置msm。
四:安裝nginx,實作負載均衡。
以下是詳細步驟:
第一步:安裝memcached
1. 下載下傳memcached服務端memcached-1.2.6-win32-bin.zip,位址:csdn
第二步:安裝tomcat
1. 安裝兩個tomcat6,如果不在myEclipse等內建環境下,需要先安裝JDK.注意修改兩個
tomcat的端口号(server.xml中要修改三個端口:8005,8080,8009,把這三個改成沒有在用的端口就可以了)。
2. 啟動tomcat看是否能成功啟動。如果不能啟動成功,很可能就是端口沖突。
第三步:配置msm:
1,先下載下傳msm及其依賴包
[url] http://memcached-session-manager.googlecode.com/files/memcached-session-manager-1.3.0.jar [/url]
[url] http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-jodatime-1.3.0.jar[/url]
[url] http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-cglib-1.3.0.jar [/url]
[url] http://spymemcached.googlecode.com/files/memcached-2.4.2.jar [/url]
[url] http://memcached-session-manager.googlecode.com/files/javolution-5.4.3.1.jar [/url]
2,将這5個包放到$TOMCAT_HOME/lib目錄下
3,修改$TOMCAT_HOME/conf/context.xml
Xml代碼
<Context docBase="d:/apache-tomcat-6.0.30/webapps" path="" reloadable="true" >
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:localhost:11211,n2:localhost:11211"
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
copyCollectionsForSerialization="false"
/>
</Context>
這裡的memcachedNodes是填寫memcached節點,多個節點時可以以空隔分開,如:
n1:localhost:11211 n2:localhost:11211,
memcached所在伺服器ip,11211是memcached預設端口号。
sessionBackupTimeout的機關為分鐘
d:/apache-tomcat-6.0.30/webapps替換成tomact的webaapps目錄
修改後重新開機兩個TOMCAT即可,這個時候已經解決SESSION的共享問題.
第四步:安裝nginx,實作負載均衡
一、1.nginx:是一款輕量級的Web 伺服器/反向代理伺服器。其特點是占有記憶體少,并發能力強。
作用:Nginx是通過将多個Web Server綁定到同一個IP位址下,以實作多個WebServer間的
負載均衡,降低單個Web Server的負荷,以提高整體的性能與穩定性。
2.nginx的安裝與運作:
cd nginx的安裝目錄
cd nginx-1.4.6
start nginx
這樣,nginx 服務就啟動了(也可以直接輕按兩下打開)。打開任務管理器,檢視 nginx.exe 程序,有二個程序會顯示,占用系統資源,那是相當的少。
然後再打開浏覽器,輸入就可以看到nginx的歡迎頁面了
nginx -s stop // 停止nginx
nginx -s reload // 重新加載配置檔案
nginx -s quit // 退出nginx
3.nginx.conf檔案需要修改的配置:
#user nobody;
#啟動程序,通常設定成和cpu的數量相等
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
#單個背景worker process程序的最大并發連結數
worker_connections 2048;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#連接配接逾時時間
#keepalive_timeout 0;
keepalive_timeout 185;
#gzip on;
#設定負載均衡的伺服器清單
upstream mysvr {
#weigth參數表示權值,權值越高被配置設定到的幾率越大
server ip1:8080 weight=6;
server ip2:8080 weight=5;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://mysvr;
index index.html index.htm index.jsp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 1; #nginx跟後端伺服器連接配接逾時時間(代理連接配接逾時)
proxy_read_timeout 30; #後端伺服器資料回傳時間(代理發送逾時)
proxy_send_timeout 60; #連接配接成功後,後端伺服器響應時間(代理接收逾時)
}
其餘配置不需要更改,詳見nginx.conf檔案。
注意:
1. 如果nginx請求中斷,報upstream timed out,修改以下參數。
proxy_read_timeout 30; #後端伺服器資料回傳時間(代理發送逾時)
proxy_send_timeout 60; #連接配接成功後,後端伺服器響應時間(代理接收逾時)
keepalive-timeout選項
此選項說的是可使用戶端到伺服器端的連接配接持續有效,當出現對伺服器的後繼請求時,keepalive-timeout功能可避免建立或重建立立連接配接。
2. jar版本,系統版本window7 32位。
此片為本人親測通過,如有意見,或者錯誤,歡迎指出。