Nginx+Memcached+Tomcat叢集配置

來源:互聯網
上載者:User
本次主要是在win7 64 上示範操作。

    • web應用構建
    • Memcached安裝配置啟動
    • Tomcat配置
      • 所需jar包
        • memcached-session-manager
        • 序列化
      • contextxml配置
    • Nginx安裝配置啟動
    • 測試
    • 參考

web應用構建

簡單構造web應用,這裡就不做描述了,具體的可以訪問我的Github。
為了方便顯示,在success.jsp上做區別,一個加上8080,一個加上8081。

Memcached安裝、配置、啟動

本次樣本使用了2個memcached節點,都在一台機子上。

win7 64上的操作。資源可以在這個連結上下載我是連結。
解壓後進入cmd進入此目錄,記住一定要用已管理員身份運行。

安裝

memcached  -d install

運行

memcached -d start

也可以啟動多個memcached服務,可以參考這個連結。

建立

sc create"Memcached Server"start= auto binPath= "memcached_path -d runservice -m 32 -p 11311 -l 127.0.0.1" DisplayName= "Memcached Server"

注意修改連接埠,預設是11211
可以通過Telnet訪問:telnet 127.0.0.1 11211
telnet介面 quit可以退出

啟動、停止、卸載Memcached Server的命令:

sc start "Memcached Server"//啟動sc stop "Memcached Server"//停止sc delete"Memcached Server"//卸載該服務

可以在工作管理員上看到memcached服務

Tomcat配置

本次以2個tomcat7.0.62樣本

Tomcat 叢集配置,叢集中各個結點通過共用儲存在緩衝Memcached中session來實現session的共用:如果有一台機器上的Tomcat服務停掉了,對於其他對等伺服器上的session資料仍然可以從Memcached緩衝中讀取,從而不會發生session丟失的問題。

使用memcached-session-manager,官方文檔。

tomcat的配置主要包括兩個方面,首先需要下載所需要的包,放到tomcat安裝目錄下的lib目錄下(嚴格來說應該是$CATALINA_HOME/lib/)
第一個msm所需要的jar,序列化所需要的jar,
第二個配置context.xml

所需jar包

memcached-session-manager

tomcat 7對應的maven配置
需要如下3個jar包;
memcached-session-manager-version.jar,
memcached-session-manager-tc7-version.jar,
spymemcached-version.jar

可以在下面maven中下載

<dependency><groupId>de.javakaffee.msmgroupId><artifactId>memcached-session-manager-tc7artifactId><version>1.8.3version>dependency>

序列化

4種序列化

kryo-serializer:<dependency><groupId>de.javakaffee.msmgroupId><artifactId>msm-kryo-serializerartifactId><version>versionversion>dependency>javolution:<dependency><groupId>de.javakaffee.msmgroupId><artifactId>msm-javolution-serializerartifactId><version>versionversion>dependency>xstream:<dependency><groupId>de.javakaffee.msmgroupId><artifactId>msm-xstream-serializerartifactId><version>versionversion>dependency>flexjson:<dependency><groupId>de.javakaffee.msmgroupId><artifactId>msm-flexjson-serializerartifactId><version>versionversion>dependency>

各種序列化所需要的jar包如下:
- kryo-serializer: msm-kryo-serializer, kryo-serializers, kryo, minlog, reflectasm, asm
- javolution-serializer: msm-javolution-serializer, javolution
- xstream-serializer: msm-xstream-serializer, xstream, xmlpull, xpp3_min
- flexjson-serializer: msm-flexjson-serializer, flexjson

$CATALINA_HOME/lib/添加jar情況如下

context.xml配置

即修改$CATALINA_HOME/conf/context.xml檔案中Context節點下的內容,提交MSM配置。
主要包括使用memcached來管理黏性session和非黏性session以及使用membase來管理非黏性session。
樣本基於在一台主機的2個memcached執行個體,樣本使用的序列化方式為kryo。

本次使用黏性session來管理,至於非黏性的可以自行配置或者下次再補充,配置如下,2個tomcat配置一樣。

    ..."de.javakaffee.web.msm.MemcachedBackupSessionManager"  memcachedNodes="n1:localhost:11211,n2:localhost:11311"        sticky="false" sessi>"false"        lockingMode="auto"        requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>  

Nginx安裝、配置、啟動

官網下載穩定版本,

解壓後進入該目錄後,

start nginx  // 啟動

這樣,nginx 服務就啟動了。開啟工作管理員,查看 nginx.exe 進程,有二個進程會顯示,佔用系統資源,那是相當的少。然後再開啟瀏覽器,輸入 http://127.0.0.1/ 就可以看到nginx的歡迎頁面了,非常友好。

nginx -s stop          // 停止nginxnginx -s reload       // 重新載入設定檔nginx -s quit          // 退出nginx

預設情況下,Nginx使用預設的設定檔nginx.conf,修改它,如下:

#user  nobody;worker_processes2;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections1024;}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;    sendfileon;    #tcp_nopush     on;#keepalive_timeout  0;#keepalive_timeout  65;#gzip  on;upstream localhost {          #ip_hash;server localhost:8080 weight=1;          server localhost:8081 weight=1;    }    server {        listen80;        server_name  localhost;        charset utf-8;        #charset koi8-r;#access_log  logs/host.access.log  main;location / {            root   html;            index  index.html index.htm;            proxy_passhttp://localhost;              proxy_connect_timeout2s;            proxy_set_header X-Real-IP $remote_addr;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        }        location~ ^/(WEB-INF)/ {           deny all;           }           #error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page500502503504  /50x.html;        location = /50x.html {            root   html;        }        # proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}    }    # another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

測試

登陸頁面

成功頁面
success1

success2

當把tomcat(8080)關掉後,調用tomcat(8081)顯示success2;
當關閉一個memcached服務後,顯示正常。

參考

Nginx+Memcached+Tomcat叢集配置實踐(Sticky Session)
同一台Windows機器中啟動多個Memcached服務
MSM–Memcached_Session_Manager介紹及使用
memcached-session-manager配置
Windows下Nginx的安裝與配置

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

以上就介紹了Nginx+Memcached+Tomcat叢集配置,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.