nginx负载均衡集群
0、前言:nginx 负载均衡,属于网络7层模型中的应用层,说白了就是一个代理,要用 upstrem 模块实现,代理则用proxy模块
1、可以针对域名做转发,lvs只能针对ip(牵扯到ip和内核的改动)
2、优势:
(a)非常灵活地配置负载均衡
(b)可以根据域名去转发
应用情景:不同域名对应不同机器 或者 域名下有二级目录,不同目录可以针对不同的real server(不需要配置公网 IP)
实验环境:
director主机: 192.168.131.132
real server1: 192.168.131.110
real server2: 192.168.131.131
一、配置
dir主机配置(只需要dir配置,rs1,rs2不用管)
1、安装nginx
yum install nginx(依赖epel源)
根据平台选择是32位还是64位:所以第 0 步应该是下载+安装 epel 源
2、测试是否出现nginx的欢迎页面:curl localhost
ps:由于我是源码安装的(configure,make,make install) ,所以访问是能正常出现的
另外,
curl -xlocalhost ——》 没有这种写法的!代理自己?! 再度懵逼了
附带源码安装后我做了啥,大家可以直接跳过
---------------------------------------------
(a)主配置文件 nginx.conf 不需要有server部分
(b)创建目录 vhosts,新建一个default.conf,server部分扔进去
别加 deny all ,否则 curl localhost/浏览器 访问直接报错 403 ,但这并不影响最终测试
---------------------------------------------
3、进入vhosts 目录下,新建 lb.conf 并写入
4、停掉防火墙:(i) iptables -t nat -F; (ii)iptables -F
5、查看是否监听80端口:netstat -lnp
6、测试是否能够访问real server
curl -x192.168.131.110:80 www.123.com
curl -x192.168.131.131:80 www.123.com
二、测试
curl -xlocalhost:80 www.123.com
(ps:浏览器测试需要写hosts:192.168.131.132 www.123.com)
1、没有设置权重 (master:1,slave:1)
2、设置权重(master:2, slave:1)
(a)lb.conf
(b)重启nginx
(c)运行结果