首頁  >  文章  >  運維  >  Nginx根據請求IP末段進行分流如何配置

Nginx根據請求IP末段進行分流如何配置

WBOY
WBOY轉載
2023-05-18 10:10:341196瀏覽

主要是 location 參數中的 if 判斷的配置跳轉,分流能減輕伺服器的負載和壓力,而這種是一種非常常見的伺服器部署架構。
根據ip 最後一段的範圍來跳轉

#域名,ip,端口等信息请自行修改

upstream huaji-01.com {
 server 192.168.1.100:8080;
}

upstream huaji-02.com {
 server 192.168.1.200:8080;
}

server {

 listen 80;
 server_name www.huaji.com;

 location /
 {
  if ( $remote_addr ~* ^(.*)\.(.*)\.(.*)\.[1,125]$) {
    proxy_pass http://huaji-01.com;
    break;
  }

  proxy_pass http://huaji-02.com;
 }

}

以上為將ip 末段為1-125 的請求來源轉發到huaji-01.com,其他轉向huaji-02.com,同樣可以修改正規,例如

規則: $remote_addr ~* ^(.*)\.(.*)\.(.*)\.*[0268]$ 結尾為0268這樣的偶數ip,跳轉到huaji-01.com,其他跳到第二個網域;

規則:$remote_addr ~* ^(112)\.(.*)\.(.*)\.(.*) $ 開頭為112 的ip 跳到指定的網域名稱;

#規則:$http_x_forwarded_for ~* ^(112)\.(.*)\.(.*)\.(.*)$ 根據forward位址段來分流,開頭為112 的跳到指定網域名稱

if 指令條件判斷的含義:

正規表示式匹配,其中:

~ 為區分大小寫匹配

~* 為不區分大小寫匹配

!~ 和!~* 分別為區分大小寫不匹配及不區分大小寫不匹配

檔案及目錄匹配,其中:

-f 和!-f 用來判斷是否存在檔案

-d 和!-d 用來判斷是否存在目錄

-e 和!-e 用來判斷是否存在檔案或目錄

-x 和!-x 用來判斷檔案是否可執行

rewrite指令的最後一個參數為flag標記,flag標記有:

last 相當於apache 裡面的[l] 標記,表示rewrite。

break 本條規則匹配完成後,終止匹配,不再匹配後面的規則。

redirect 傳回 302 暫時重定向,瀏覽器位址會顯示跳轉後的 url 位址。

permanent 傳回 301 永久重定向,瀏覽器位址會顯示跳轉後的 url 位址。

以上是Nginx根據請求IP末段進行分流如何配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除