前言:上篇文章,我们为我们的CentOS7安装了 Nginx 和 Tomcat,那么本节我们将进行负载均衡和动静分离的配置。
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服务器集群的一个节点
}
加入的位置如下:
- 修改默认配置文件
vi /etc/nginx/conf.d/default.conf
加入如下内容:
proxy_pass http://Servers;
加入的位置:
3. 修改之后,重启 nginx
nginx -s reload
- 一些其他配置
(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;
}
- 将要运行的Web应用放入 tomcat
需要部署在 Tomcat 上的应用放的位置为CentOS的usr / share / tomcat / webapps
目录下
2. 动静分离配置
- 配置动态资源映射
设置后缀名为jsp或do的访问请求移交给Tomcat集群处理
location ~ .*\.(jsp|do)$ {
proxy_pass http://Servers;
proxy_set_header Host $host;
}
- 设置静态资源映射
设置图片后缀的请求访问nginx中的static文件夹处理。
location ~ .*\. (gif|jpg|jpeg|png|bmp|swf)$ {
root /usr/local/nginx/static; # 静态资源存放的位置 ,可以自定义
}
- 部署静态资源和动态资源
- 动态资源部署:将网站正常部署至各Tomcat的webapps目录中
将生成的 xxx_war_exploded 放在 Tomcat 的 webapp 目录下
- 静态资源部署:将网站(非war包形式)中的动态资源剔除,整体部署(含root文件夹)部署至步骤2中的static目录中
- 访问
正常进行网站的访问,其静态资源就是从Nginx中加载的,可通过只部署部分静态资源,查看页面效果进行测试
附:解决 nginx 重复启动问题
ps -ef|grep nginx
kill pid