七、Nginx反向代理
阅读原文时间:2023年07月10日阅读:1

调度器调度后端服务器 : web高可用  负载均衡   解决web单点故障

部署后端服务器---配置Nginx服务器(定义集群、请求转发)---起服务、测试----配置集群池属性(权重、失败次数、失败超时时间)----配置集群的调度算法(ip_hash)

部署后端Web服务器:

[root@web1 ~]# yum  -y  install  httpd                                 //web1

[root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html

[root@web1 ~]# systemctl restart httpd

[root@web1 ~]# firewall-cmd --set-default-zone=trusted

[root@web1 ~]# setenforce 0

[root@web2 ~]# yum  -y  install  httpd                                //web2

[root@web2 ~]# echo "192.168.2.200" > /var/www/html/index.html

[root@web2 ~]# systemctl restart httpd

[root@web2 ~]# firewall-cmd --set-default-zone=trusted

[root@web2 ~]# setenforce 0

配置Nginx服务器:

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf        

.. ..

http {

.. ..

upstream webserver {                   //upstream定义集群,webserver为集群名称,自己任意定义

                server 192.168.2.100:80;        //server定义集群中的具体服务器和端口

                server 192.168.2.200:80;

        }

.. ..

server {

        listen        80;

        server_name  localhost;

            location / {

            proxy_pass http://webserver;     #通过proxy_pass将用户的请求转发给webserver集群

        }

}

起服务、验证:

[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload

[root@client ~]# curl http://192.168.4.5            //使用该命令多次访问查看效果

[root@client ~]# curl http://192.168.4.5            //使用该命令多次访问查看效果

配置集群池属性:

weight设置后台服务器的权重(默认1),max_fails设置后台服务器的失败次数,fail_timeout设置后台服务器的失败超时时间,单位为秒。

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf

.. ..

http {

.. ..

upstream webserver {

                server 192.168.2.100 weight=1 max_fails=1 fail_timeout=30;

                server 192.168.2.200 weight=2 max_fails=2 fail_timeout=30;

                server 192.168.2.101 down;      //标记为关机,不再参与集群调度

        }

.. ..

server {

        listen        80;

        server_name  localhost;

            location / {

            proxy_pass http://webserver;

        }

}

起服务、验证:

[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload

[root@web1 ~]# systemctl stop httpd

[root@client ~]# curl http://192.168.4.5            //使用该命令多次访问查看效果

[root@web1 ~]# systemctl start httpd

[root@client ~]# curl http://192.168.4.5            //使用该命令多次访问查看效果

配置集群的调度算法:

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf

.. ..

http {

.. ..

upstream webserver {

                 ip_hash;                               //通过ip_hash设置调度规则为:相同客户端访问相同服务器

                server 192.168.2.100 weight=1 max_fails=2 fail_timeout=10;

                server 192.168.2.200 weight=2 max_fails=2 fail_timeout=10;

        }

.. ..

server {

        listen        80;

        server_name  www.tarena.com;

            location / {

            proxy_pass http://webserver;

        }

}

起服务、验证:

[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload

[root@client ~]# curl http://192.168.4.5            //使用该命令多次访问查看效果