Nginx server_name 正則泛域名反向代理兩例


最近在學習Nginx搭建負載均衡系統,感覺系統部署方式的思路瞬間開闊了很多。

負載均衡服務器的后端服務器上各自有一套功能相同的WEB管理系統,主要作用是方便的對各自服務器的IIS站點及服務器防火牆測量進行調整,在沒有上Nginx之前,一直都是各自使用IP:Port的方式訪問,雖然時間長了IP也都能記得住,畢竟感覺很low,如果也能使用域名進行訪問就好了。雖然也可以直接解析兩個域名到對應的服務器上,可惜后端服務器的這兩套管理系統畢竟是非80端口的方式部署,既然解析了域名,也僅僅是變成了domain:Port的方式,並沒有變得更簡潔。

但是有了Nginx就完全不同了(HAProxy也可以達到同樣的目的)。

※ 負載均衡環境

Nginx 192.168.6.100
Ser02 192.168.6.102
Ser03 192.168.6.103
泛域名解析 *.mydomain.com 指向 192.168.6.100
管理系統分別部署在 102/103 服務器的 803 端口

※ 直接匹配后端服務器 IP

    server {
        listen       80;
        server_name  ~^fw(?<serip>.+).mydomain.com$;

        location / {
            proxy_pass       http://192.168.6.$serip:803;
            proxy_redirect   off;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

這樣可以使用 http://fw102.mydomain.com 訪問 192.168.6.102 服務器上的管理系統,使用 http://fw103.mydomain.com 訪問 192.168.6.103 服務器上的管理系統。

※ 匹配后端服務器組編號

    server {
        listen       80;
        server_name  ~^fw(?<serno>.+).mydomain.com$;

        location / {
            proxy_pass       http://backser_$serno;
            proxy_redirect   off;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

后端服務器組

    upstream backser_02 {
        ip_hash;
        server  192.168.6.102:803;
    }

    upstream backser_03 {
        ip_hash;
        server  192.168.6.103:803;
    }

這樣可以使用 http://fw02.mydomain.com 訪問 192.168.6.102 服務器上的管理系統,使用 http://fw03.mydomain.com 訪問 192.168.6.103 服務器上的管理系統。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM