Nginx反向代理

Nginx反向代理

1 問題


使用Nginx實現Web反向代理功能,實現如下功能:

後端Web服務器兩臺,可以使用httpd實現

Nginx採用輪詢的方式調用後端Web服務器

兩臺Web服務器的權重要求設置爲不同的值

最大失敗次數爲1,失敗超時時間爲30秒

2 方案


使用4臺RHEL7虛擬機,其中一臺作爲Nginx代理服務器,該服務器需要配置兩塊網卡,IP地址分別爲192.168.4.5和192.168.2.5,兩臺Web服務器IP地址分別爲192.168.2.100和192.168.2.200。客戶端測試主機IP地址爲192.168.4.100。

3 步驟


實現此案例需要按照如下步驟進行。

步驟一:部署實施後端Web服務器


1)部署後端Web1服務器

後端Web服務器可以簡單使用yum方式安裝httpd實現Web服務,爲了可以看出後端服務器的不同,可以將兩臺後端服務器的首頁文檔內容設置爲不同的內容。

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

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

[root@web1 ~]# systemctl restart httpd

2)部署後端Web2服務器

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

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

[root@web2 ~]# systemctl restart httpd

步驟二:配置Nginx服務器,添加服務器池,實現反向代理功能


1)修改/usr/local/nginx/conf/nginx.conf配置文件

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

.. ..

http {

.. ..

upstream webserver {

                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.aa.com;

            location / {

            proxy_pass http://webserver;

        }

}

2)重啓nginx服務

[root@svr5 ~]# /usr/local/nginx/sbin/nginx –s reload

3)使用瀏覽器訪問代理服務器測試輪詢效果

[root@client ~]# curl http://192.168.4.5            //使用該命令多次訪問查看效果

步驟二:配置upstream服務器集羣池屬性


1)設置失敗次數,超時時間,權重

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

.. ..

http {

.. ..

upstream webserver {

                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.aa.com;

            location / {

            proxy_pass http://webserver;

        }

}

2)重啓nginx服務

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

3)使用瀏覽器訪問代理服務器測試輪詢效果

[root@client ~]# curl http://192.168.4.5            //使用該命令多次訪問查看效果

4)設置相同客戶端訪問相同Web服務器

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

.. ..

http {

.. ..

upstream webserver {

                 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.aa.com;

            location / {

            proxy_pass http://webserver;

        }

}

5)重啓nginx服務

[root@svr5 ~]# /usr/local/nginx/sbin/nginx –s reload

6)使用瀏覽器訪問代理服務器測試輪詢效果

[root@client ~]# curl http://192.168.4.5            //使用該命令多次訪問查看效果


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章