Windows+tomcat6+nginx+memcached实现负载均衡

来源:互联网 发布:js按钮点击一次后失效 编辑:程序博客网 时间:2024/05/29 03:24

负载均衡解决方案

1.        环境

Windows server2008操作系统,tomcat6中间件,nginx负载均衡,memcached缓存。

2.        Nginx负载均衡配置。

下载nginx   http://nginx.org/en/download.html

Nginx为绿色版解压即可使用。

例如:tomcat1        ip:192.168.96.134   启动端口:8070

           Tomcat2        ip:192.168.96.128   启动端口:8080

           Nginx              ip:192.168.96.128   启动端口:80

           Memcached  ip:192.168.96.128   启动端口:11211

修改Nginx配置文件/conf/nginx.conf  (红色为修改内容)

 

#user  nobody;

worker_processes  1;

 

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

 

#pid        logs/nginx.pid;

 

 

events {

    worker_connections  1024;

}

 

 

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  65;

 

    #gzip on;

         upstreambackend {

                   server 192.168.96.134:8070;

                   server 192.168.96.128:8080; 

         }

 

    server {

        listen       80;

        server_name  localhost;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

    location / {

           root   html;

           index  index.html index.htm;

          proxy_pass                 http://backend; 

          proxy_redirect              off;

          proxy_set_header            Host$host;

          proxy_set_header           X-Real-IP $remote_addr;

          proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;

          client_max_body_size        10m;

          client_body_buffer_size     128k;

          proxy_connect_timeout       1;

          proxy_send_timeout          90;

          proxy_read_timeout          90;

          proxy_buffer_size           4k;

          proxy_buffers               4 32k;

          proxy_busy_buffers_size     64k;

          proxy_temp_file_write_size  64k;

        }

 

        #error_page  404              /404.html;

 

        #redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

           root   html;

        }

 

        # proxy the PHP scripts to Apachelistening on 127.0.0.1:80

        #

        #location ~ \.php$ {

        #   proxy_pass   http://127.0.0.1;

        #}

 

        # pass the PHP scripts to FastCGIserver 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, ifApache'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;

    #   server_name  localhost;

 

    #   ssl                  on;

    #   ssl_certificate      cert.pem;

    #    ssl_certificate_key  cert.key;

 

    #   ssl_session_timeout  5m;

 

    #   ssl_protocols  SSLv2 SSLv3 TLSv1;

    #   ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

    #   ssl_prefer_server_ciphers   on;

 

    #   location / {

    #       root   html;

    #       index  index.html index.htm;

    #   }

    #}

 

}

3.        配置memcached缓存seasion实现seasion同步。

启动memcached

cmd进入到memcached路径输入命令 memcached –d install(安装) memecached –d start(启动)  netstat –ano |findstr 11211  查看memecached是否启动。

配置tomcat

准备如下jar包,放入tomcat目录下的lib目录。

asm-3.2.jar

kryo-1.04.jar

kryo-serializers-0.11.jar

minlog-1.2.jar

msm-kryo-serializer-1.8.3.jar

reflectasm-1.01.jar

memcached-session-manager-1.8.3.jar

memcached-session-manager-tc6-1.8.3.jar

spymemcached-2.11.1.jar

修改两个tomcat的config目录下的context.xml文件在在<ContextdocBase="/data/web/_hudongba_main" path=""/>中添加子节点:

<ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager" 

         memcachedNodes="n1:192.168.96.128:11211

         sticky="false"

         sessionBackupAsync="false"

         lockingMode="auto"

         requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

         transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory" 

         />

4.       启动两个tomcat和nginx

 

 

1 0
原创粉丝点击