Nginx+Tomcat负载均衡

Nginx+Tomcat负载均衡

安装及环境配置

  1. jre
    http://blog.csdn.net/stsahana/article/details/52275785
  2. tomcat
    http://blog.csdn.net/stsahana/article/details/52276341
  3. 配置多个tomcat
    http://blog.csdn.net/stsahana/article/details/52288144
  4. nginx(ubuntu下)
    • 安装:sudo apt-get insatll nginx
    • 启动:server nginx start
    • 停止:service nginx stop
    • 查看运行状态:service nginx status
    • 检查配置文件:nginx -t
    • 服务运行中重新加载配置:nginx -s reload
    • 添加Nginx服务自启动:chkconfig nginx on

负载均衡配置

启动nginx时,nginx会自动加载/etc/nginx/nginx.conf,而在nginx.conf的原代码中,会include /etc/nginx/conf.d/*.conf,我们的负载均衡就在这个文件下设置

新建tomcats.conf

vi /etc/nginx/conf.d/tomcats.conf

内容如下

 #设定负载均衡的服务器列表
upstream tomcats {
     #weigth参数表示权值,权值越高被分配到的几率越大
     ip_hash;//保证同一用户访问同一服务器
     server 192.168.0.251:8080 weight=1;//第一个
     server 192.168.0.251:8081 weight=1;//第二个
     server 192.168.0.251:8082 weight=1;//第三个
 }
server {
        listen       8800;
        server_name  webapp;
        location / {
         #设置主机头和客户端真实地址,以便服务器获取客户端真实IP
         include /etc/nginx/proxy_params;//nginx1.11中的代理设置
             proxy_buffering on;//启动缓存
             #反向代理的地址
             proxy_pass http://tomcats;     
        }
}

保存后重新加载配置:nginx -s reload

静态资源分离配置

vi /etc/nginx/conf.d/tomcats.conf

在location / 后添加如下内容,

#所有js,css相关的静态资源文件的请求由Nginx处理
location ~.*\.(js|css)$ {
    root    /var/www/html; #指定文件存放路径
    expires     12h; #过期时间为12小时
}
#所有图片等多媒体相关静态资源文件的请求由Nginx处理
location ~.*\.(html|jpg|jpeg|png|bmp|gif|ico|mp3|mid|wma|mp4|swf|flv|rar|zip|txt|doc|ppt|xls|pdf)$ {
    root    /var/www/html; #指定文件路径
    #过期7天,如果静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
    expires     7d; #过期时间为7天
}

修改SELinux安全规则

如果访问Nginx时出现502 Bad Gateway错误,则可能是Nginx主机上的SELinux限制了其使用http访问权限引起的,输入命令setsebool -P httpd_can_network_connect 1 开启权限即可。

完整代码

etc/nginx/conf.d/tomcats.conf

#设定负载均衡的服务器列表
upstream tomcats {
     #weigth参数表示权值,权值越高被分配到的几率越大
     ip_hash;//保证同一用户访问同一服务器
     server 192.168.0.251:8080 weight=1;//第一个
     server 192.168.0.251:8081 weight=1;//第二个
     server 192.168.0.251:8082 weight=1;//第三个
 }
server {
        listen       8800;
        server_name  webapp;
        location / {
         #设置主机头和客户端真实地址,以便服务器获取客户端真实IP
         include /etc/nginx/proxy_params;//nginx1.11中的代理设置
             proxy_buffering on;//启动缓存
             #反向代理的地址
             proxy_pass http://tomcats;     
        }
        #所有js,css相关的静态资源文件的请求由Nginx处理
        location ~.*\.(js|css)$ {
            root    /var/www/html; #指定文件存放路径
            expires     12h; #过期时间为12小时
            }
    #所有图片等多媒体相关静态资源文件的请求由Nginx处理
        location ~.*\.(html|jpg|jpeg|png|bmp|gif|ico|mp3|mid|wma|mp4|swf|flv|rar|zip|txt|doc|ppt|xls|pdf)$ {
            root    /var/www/html; #指定文件路径
            #过期7天,如果静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一些
            expires     7d; #过期时间为7天
            }
}

测试

如果nginx已经启动,先关闭

service nginx stop

再启动

service nginx start

在浏览器输入localhost:8800,如果在未设置ip_hash的情况下,多次刷新会访问到不同的tomcat,为了验证访问到的是不同的tomcat,可以修改tomcat下webapps/examples/index.html,使三个tomcat/example主页不同,这样多次访问到的localhost:8080/example主页将会不同。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值