双主模型的Nginx Proxy高可用集群 详细示例
1、绘制拓扑
2、各个虚机的基础配置
2.1 Server-1(HTTP配置及默认主页配置)
[root@Neo_Tang ~]# ifconfig | grep "inet 192" -B 1
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.12 netmask 255.255.255.0 broadcast 192.168.10.255
[root@Neo_Tang ~]# curl http://192.168.10.12
<h1>HTTP web-server-1 192.168.10.12</h1>
2.2 Server-2(HTTP配置及默认主页配置)
[root@Neo_Tang ~]# ifconfig | grep "inet 192" -B 1
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.13 netmask 255.255.255.0 broadcast 192.168.10.255
[root@Neo_Tang ~]# curl http://192.168.10.13
<h1>HTTP web-server-2 192.168.10.13</h1>
2.3 Nginx-1(Nginx Proxy配置)
[root@Neo_Neo ~]# ifconfig | grep "inet 192" -B 1
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
--
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.11 netmask 255.255.255.0 broadcast 192.168.10.255
[root@Neo_Neo ~]# cat /etc/nginx/nginx.conf
http {
upstream webservers {
server 192.168.10.12:80 weight=1;
server 192.168.10.13:80 weight=1;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.neotang.com;
root /usr/share/nginx/html;
location / {
proxy_pass http://webservers;
}
}
}
2.4 Nginx-2(Nginx Proxy配置)
[root@Tang_Tang ~]# ifconfig | grep "inet 192" -B 1
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.15 netmask 255.255.255.0 broadcast 192.168.1.255
--
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.18 netmask 255.255.255.0 broadcast 192.168.10.255
[root@Tang_Tang ~]# cat /etc/nginx/nginx.conf
http {
upstream webservers {
server 192.168.10.12:80 weight=1;
server 192.168.10.13:80 weight=1;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.neotang.com;
root /usr/share/nginx/html;
location / {
proxy_pass http://webservers;
}
}
}
3、Nginx 服务器访问后端 Server(后端服务器能被成功访问)
3.1 Nginx-1
[root@Tang_Tang ~]# ifconfig | grep "inet 192" -B 1
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.15 netmask 255.255.255.0 broadcast 192.168.1.255
--
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.18 netmask 255.255.255.0 broadcast 192.168.10.255
[root@Tang_Tang ~]# curl http://192.168.10.12
<h1>HTTP web-server-1 192.168.10.12</h1>
[root@Tang_Tang ~]# curl http://192.168.10.13
<h1>HTTP web-server-2 192.168.10.13</h1>
3.1 Nginx-2
[root@Neo_Neo ~]# ifconfig | grep "inet 192" -B 1
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
--
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.11 netmask 255.255.255.0 broadcast 192.168.10.255
[root@Neo_Neo ~]# curl http://192.168.10.12
<h1>HTTP web-server-1 192.168.10.12</h1>
[root@Neo_Neo ~]# curl http://192.168.10.13
<h1>HTTP web-server-2 192.168.10.13</h1>
4、用户进行访问(Nginx 代理配置完毕后,进行后端服务器访问)
4.1 用户A进行访问
[root@Tang-Neo ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.9 netmask 255.255.255.0 broadcast 192.168.1.255
[root@Tang-Neo ~]# for i in {
1..10}; do curl http://192.168.1.11; done;
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
[root@Tang-Neo ~]# for i in {
1..10}; do curl http://192.168.1.15; done;
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
4.2 用户B进行访问
[root@Neo ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
[root@Neo ~]# for i in {
1..10}; do curl http://192.168.1.11; done;
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-2 192.168.10.13</h1>
<h1>HTTP web-server-1 192.168.10.12</h1>
[root@Neo ~]# for i in {
1..10}; do curl http://192.168.1.15; done;
<h1>HTTP web-server-1 192.168.10.12</h1>
<h1>