Nginx+Tomcat+Keepalived负载均衡动静分离技术

一:Nginx+Tomcat的动静分离

所谓动静分离就是通过nginx(或apache等)来处理用户端请求的图片、html等静态的文件,tomcat(或weblogic)处理jsp、do等动态文件,从而达到动静页面访问时通过不同的容器来处理。

nginx处理静态页面效率远高于tomcat,而tomcat擅长动态页面处理,这样一来就能更好的提高并发,处理性能。

页面压力测试

ab -n 1000 -c 200 http://10.10.54.157/index.html

二:具体步骤

//环境介绍
1.主机
centos6.5 IP:192.168.50.196 IP:192.168.50.173
 
2.在此主机上安装nginx,及一个tomcat,nginx的反向代理功能可以把用户请求负载到tomcat上
nginx使用80端口,tomcat使用8080端口
目的:当访问10.10.54.157这台服务器时,静态页面由nginx处理,动态页面由tomcat处理
 
3.软件下载
wget http://nginx.org/download/nginx-1.7.3.tar.gz
//安装nginx
1.编译安装
shell> yum  -y install zlib-devel pcre-devel openssl-devel    #nginx依赖包
shell>useradd -s /sbin/nologin -M nginx        //添加nginx 用户,没有登录shell,没有家目录. shell
> tar xvf nginx-1.7.3.tar.gz shell> cd nginx-1.7.3 shell> ./configure --prefix=/usr/local/nginx --with-pcre --with-http_stub_status_module --user=nginx --group=nginx --with-http_ssl_module --with-http_gzip_static_module shell> make && make install 2.启动nginx shell> /usr/local/nginx/sbin/nginx

//配置nginx.conf实现负载均衡,动静分离

shell> vim /usr/local/nginx/conf/nginx.conf
--------------------------------------------------------
user  nginx nginx;    #用户,tomcat默认首页也要改为apache用户
worker_processes  2;
#error_log  logs/error_nginx.log;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
 
http   
{  
          include       mime.types;  
          default_type  application/octet-stream;       
          server_names_hash_bucket_size 128;  
          client_header_buffer_size 32k;  
          large_client_header_buffers 4 32k;  
          client_max_body_size 8m;  
          sendfile on;  
          keepalive_timeout 60;  
          gzip on;  
  
#负载均衡
upstream yan {
          server 192.168.50.173:8080 max_fails=3 weight=1 fail_timeout=60s;
          server 192.168.50.196:8080 max_fails=3 weight=1 fail_timeout=60s;
        }
         
server
  {
         listen       80;
         server_name  localhost;            
         index index.jsp index.php index.do index.jsp;
         access_log  logs/yan_access_nginx.log;
         error_log logs/yan_error.log;
         root  /var/www/nginx;    #nginx默认根目录
    location ~ \.(jsp|do|action)$ {        #jsp,do等页面交由tomcat处理
            proxy_pass http://yan;
            proxy_set_header HOST $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
            expires      30d;
            }
}
}

 

 

参考:

http://www.cnblogs.com/yuanermen/p/3724804.html

http://my.oschina.net/zijian1315/blog/208676



posted @ 2014-07-17 11:44  forbesyan  阅读(160)  评论(0)    收藏  举报