一、2台服务器作为real server ,一台作为director
172.28.18.103和172.28.18.71作为real server
172.28.18.69作为director
二、在两台real server上安装nginx
配置nginx yum源
[root@localhost ~]# vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
安装
[root@localhost ~]# yum install -y nginx
查看
[root@localhost ~]# whereis nginx nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz [root@localhost ~]#
配置文件
查看默认根目录页面地址
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; }
编辑/usr/share/nginx/html/index.html
加上本机IP地址,在测试负载均衡的时候,才知道分发到了哪台real server上
[root@localhost ~]# vim /usr/share/nginx/html/index.html <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!-71</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>
保存、退出
启动nginx
[root@localhost conf.d]# nginx -c /etc/nginx/nginx.conf
在浏览器查看
可以显示IP了,同样另外一台103的服务器也这样安装和配置nginx
三、在172.28.18.69上安装ipvsadm
[root@localhost mysql-5.7.26]# yum install -y ipvsadm 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.huaweicloud.com * updates: mirrors.tuna.tsinghua.edu.cn base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 正在解决依赖关系 --> 正在检查事务 ---> 软件包 ipvsadm.x86_64.0.1.27-7.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 =========================================================================================================== Package 架构 版本 源 大小 =========================================================================================================== 正在安装: ipvsadm x86_64 1.27-7.el7 base 45 k 事务概要 =========================================================================================================== 安装 1 软件包 总下载量:45 k 安装大小:75 k Downloading packages: ipvsadm-1.27-7.el7.x86_64.rpm | 45 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 警告:RPM 数据库已被非 yum 程序修改。 ** 发现 2 个已存在的 RPM 数据库问题, 'yum check' 输出如下: 2:postfix-2.10.1-7.el7.x86_64 有缺少的需求 libmysqlclient.so.18()(64bit) 2:postfix-2.10.1-7.el7.x86_64 有缺少的需求 libmysqlclient.so.18(libmysqlclient_18)(64bit) 正在安装 : ipvsadm-1.27-7.el7.x86_64 1/1 验证中 : ipvsadm-1.27-7.el7.x86_64 1/1 已安装: ipvsadm.x86_64 0:1.27-7.el7 完毕!
四、开启director服务器路由转发功能
vim /etc/sysctl.conf
最后一行加上
net.ipv4.ip_forward=1
保存,退出,执行
[root@director ~]# sysctl -p
立即生效
五、配置虚拟服务器
[root@director ~]# ipvsadm -A -t 172.28.18.69:80 -s rr
增加一个虚拟服务器 172.28.18.69,分发算法为rr(轮询) -t:tcp协议 -s:分发算法
六、增加后端实际服务器
[root@director ~]# ipvsadm -a -t 172.28.18.69:80 -r 172.28.18.103:80 -m [root@director ~]# ipvsadm -a -t 172.28.18.69:80 -r 172.28.18.71:80 -m
七、查看配置规则
[root@director ~]# ipvsadm -L -n IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.28.18.69:80 rr -> 172.28.18.71:80 Masq 1 0 0 -> 172.28.18.103:80 Masq 1 0 0
八、测试
[root@director ~]# curl http://172.28.18.69 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!-71</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>
分发到71上
[root@director ~]# curl http://172.28.18.69 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!-103</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html> [root@director ~]# curl http://172.28.18.69 <!DOCTYPE html>
再次请求,分发到103上。