Windows下 Nginx+Tomcat6+Memcached反向代理负载均衡(HTTP+TCP)

来源:互联网 发布:网络远程教育 编辑:程序博客网 时间:2024/06/05 06:22

0、资料准备

   下载:nginx-1.10.1

   下载:memcached.exe

   准备:tomcat6

   准备:memcached所需JAR包

          


1、安装nginx,安装完成启动;

(1)双击nginx.exe启动

(2)DOS启动,寻到文件后  start nginx


2、nginx.conf配置

(1)一般配置

     #Nginx所用用户和组,window下不指定 
#user  nobody;
#工作的子进程数量(通常等于CPU数量或者2倍于CPU) 
worker_processes  2;
#错误日志存放路径
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;
#指定pid存放文件  
pid  logs/nginx.pid;
events {
#使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。  
#use epoll;
#允许最大连接数
    worker_connections  2048;
}

2)#TCP负载均衡stream 

stream {
upstream cloudsocket {
hash $remote_addr consistent;
server 127.0.0.1:10519 weight=5 max_fails=3 fail_timeout=30s;
server 127.0.0.1:10518 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 10511;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass cloudsocket;
}
}

(3)#HTTP负载均衡配置http

 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  off;
    access_log  logs/access.log;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    #keepalive_timeout  65;
    #开启gzip压缩
    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
#设定请求缓冲
    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;
#include    gzip.conf;  
  upstream localhost {  
      #根据ip计算将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。  
      #同一机器在多网情况下,路由切换,ip可能不同  
                          
      #该参数必须,不然后面通过DCN网络使用nginx反向代理只能看到登录界面首页,输入账号密码不能登录到系统
      ip_hash;   
      server 127.0.0.1:8080  weight=1 max_fails=2 fail_timeout=30s;
        server 127.0.0.1:8081  weight=1 max_fails=2 fail_timeout=30s;
   

#调整默认端口80为:1080或者其他时,记得调整proxy_set_header Host $host:1080或其他;
    server {
        listen       1080;
        server_name  localhost;
         #charset koi8-r;
#设定本虚拟主机的访问日志
        access_log  logs/host.access.log;
         location / {             
            proxy_pass http://localhost;
            proxy_redirect off;
proxy_set_header Host $host:1080;
            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_send_timeout 1;        #后端服务器数据回传时间(代理发送超时)
          proxy_read_timeout 1;         #连接成功后,后端服务器响应时间(代理接收超时)
            #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
          client_max_body_size 10m;    #允许客户端请求的最大单文件字节数
          client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数,
          proxy_buffer_size 4k;             #设置代理服务器(nginx)保存用户头信息的缓冲区大小
          proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
          proxy_busy_buffers_size 64k;    #高负荷下缓冲大小(proxy_buffers*2)
          proxy_temp_file_write_size 64k;  #设定缓存文件夹大小,大于这个值,将从upstream服务器传
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

3、配置2tomcat实例

tomcat1

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

tomcat2

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

4、若在同一台机器上的两个tomcat注意相关的端口

tomcat1

<Server port="8010" shutdown="SHUTDOWN">

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8"/>

<Connector port="8090" protocol="AJP/1.3" redirectPort="8443" />

tomcat2

<Server port="8011" shutdown="SHUTDOWN">

<Connector port="8081" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8"/>

<Connector port="8091" protocol="AJP/1.3" redirectPort="8443" />

5、阶段测试:

      http://localhost:1080/


6、Memcached安装配置

(1)安装

memcached.exe –d install

(2)启动

memcached -d start

 (3)查看

tasklist /fi "imagename eq memcached.exe"

4)memcached的配置

Tomcat要支持memcached管理Session,需要调用一些jar库文件如下,下载后,将这些库文件放到tomcat\lib目录下。


为Tomcat配置memcached配置文件目录:tomcat\conf\context.xml,记得两个Tomcat都要配的哦。打开配置文件,在<Context>...</Context>节点中添加如下内容:


<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:127.0.0.1:11211"
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
copyCollectionsForSerialization="false" 
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>

0 0
原创粉丝点击