【负载均衡+动静分离】Nginx 和 Tomcat 的负载均衡&动静分离配置

前言:上篇文章,我们为我们的CentOS7安装了 Nginx 和 Tomcat,那么本节我们将进行负载均衡和动静分离的配置。

1. 负载均衡配置

  1. 修改 nginx 配置文件
vi /etc/nginx/nginx.conf

加入如下内容, 表示发给 Nginx 的请求被转发给这两个Tomcat 服务器

    upstream Servers{
        server 192.168.244.130:8080;  #作为web服务器集群的一个节点
        server 192.168.244.131:8080;  #作为web服务器集群的一个节点
    }

加入的位置如下:

【负载均衡+动静分离】Nginx 和 Tomcat 的负载均衡&动静分离配置_第1张图片

  1. 修改默认配置文件
vi /etc/nginx/conf.d/default.conf

加入如下内容:

proxy_pass http://Servers;

加入的位置:

【负载均衡+动静分离】Nginx 和 Tomcat 的负载均衡&动静分离配置_第2张图片
3. 修改之后,重启 nginx

nginx -s reload
  1. 一些其他配置

(1)IP 绑定

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

    upstream Servers{
    	ip_hash;
        server 192.168.244.130:8080 weight=5;  #权重为 5
        server 192.168.244.131:8080 weight=10;  #权重为 10
    }

(2)设置权重

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。设置方式如下所示:

    upstream Servers{
        server 192.168.244.130:8080 weight=5;  #权重为 5
        server 192.168.244.131:8080 weight=10;  #权重为 10
    }

(3)为设备设置状态值

  • down :表示当前的server暂时不参与负载.
  • backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
upstream Servers{ 
	ip_hash;
	server 192.168.181.199:8080 down;
	server 192.168.181.199:9090 backup;
}
  1. 将要运行的Web应用放入 tomcat
    需要部署在 Tomcat 上的应用放的位置为CentOS的 usr / share / tomcat / webapps 目录下

【负载均衡+动静分离】Nginx 和 Tomcat 的负载均衡&动静分离配置_第3张图片




2. 动静分离配置

  1. 配置动态资源映射

设置后缀名为jsp或do的访问请求移交给Tomcat集群处理

location ~ .*\.(jsp|do)$ { 
proxy_pass http://Servers; 
proxy_set_header Host $host; 
}
  1. 设置静态资源映射

设置图片后缀的请求访问nginx中的static文件夹处理。

location ~ .*\.	(gif|jpg|jpeg|png|bmp|swf)$ { 
	root /usr/local/nginx/static; # 静态资源存放的位置 ,可以自定义
}
  1. 部署静态资源和动态资源
  • 动态资源部署:将网站正常部署至各Tomcat的webapps目录中

【负载均衡+动静分离】Nginx 和 Tomcat 的负载均衡&动静分离配置_第4张图片

【负载均衡+动静分离】Nginx 和 Tomcat 的负载均衡&动静分离配置_第5张图片
【负载均衡+动静分离】Nginx 和 Tomcat 的负载均衡&动静分离配置_第6张图片
将生成的 xxx_war_exploded 放在 Tomcat 的 webapp 目录下

  • 静态资源部署:将网站(非war包形式)中的动态资源剔除,整体部署(含root文件夹)部署至步骤2中的static目录中
  1. 访问
    正常进行网站的访问,其静态资源就是从Nginx中加载的,可通过只部署部分静态资源,查看页面效果进行测试



附:解决 nginx 重复启动问题

ps -ef|grep nginx 
kill pid

你可能感兴趣的:(Nginx,tomcat,nginx,负载均衡)