nginx+tomact+memcached(緩存)集群
關于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;</p>
#啟動進程,通常設置成和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 {</p>
#單個后臺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位。