项目环境:
系统:CentOS 7.6
关闭:selinux
关闭:firewalld

防火墙:外网口填写的是电信运营商给的公网IP地址,然后映射内网vip地址,再开启一些安全策略。

Nginx + Keepalived:Nginx 接受到用户的请求后copy一份 转给后端的某台Web服务器,如果已经接收到请求的Web服务器down机了,此时Nginx调度器会 把请求再copy一份给另一台Web服务器,直至完成用户的响应。

Keepalived 负责虚拟出一个虚拟IP 称 VIP

WebServer:负责解析用户的请求抓取相应的数据给前端的Nginx调度器,关于WebServer优化,请看下集续讲。

Nginx + Keepalived 负载均衡高可用项目_第1张图片

1、Nginx负载均衡的配置文件可以是保留用到的其它部分全注释或者删除

Nginx调度器一:IP 192.168.1.16
[root@lb1 ~]# cat /etc/nginx/conf.d/default.conf
upstream groupweb {
server 192.168.1.21:80 max_fails=2 fail_timeout=5s;
server 192.168.1.22:80 max_fails=2 fail_timeout=5s;
server 192.168.1.23:80 max_fails=2 fail_timeout=5s;
}

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;
    proxy_pass http://groupweb;
}

}

Nginx调度器二: IP 192.168.1.17
[root@lb2 ~]# cat /etc/nginx/conf.d/default.conf
upstream groupweb {
server 192.168.1.21:80 max_fails=2 fail_timeout=5s;
server 192.168.1.22:80 max_fails=2 fail_timeout=5s;
server 192.168.1.23:80 max_fails=2 fail_timeout=5s;
}

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;
    proxy_pass http://groupweb;
}

}

2、Keepalived 的配置文件的修改,保留需要的,其它部分建议注释或者删除

Keepalived高可用一 IP: 192.168.1.16
[root@lb1 ~]# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100/24
}
}

Keepalived高可用二 IP: 192.168.1.17
[root@lb2 ~]# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100/24
}

}

3、Web服务器 :为了简单方便 我就直接装了Apache服务

Web服务器一 IP :192.168.1.21
[root@web1 ~]# echo web1 > /var/www/html/index.html

Web服务器二 IP :192.168.1.22
[root@web1 ~]# echo web2 > /var/www/html/index.html

Web服务器三 IP :192.168.1.23
[root@web1 ~]# echo web3 > /var/www/html/index.html