博客 / 詳情

返回

架構設計--openresty配置文件的邏輯結構

openresty 配置文件結構:

#全局其他的配置(比如: 配置日誌的數據位置等)
....

#配置http的反向代理
http{
    
    server{
        listten 8080; #後端的進程,比如Java的服務器
    }
    server{
        listten 8081;
    }
}
#配置tcp的反向代理
stream{
    server{
    
    }
    server{}
}

server的結構:



server{
        其他配置結構 ......

        upstream xxx01 {
            # 請求按順序分配到各後端服務器。默認的策略
            server 192.168.1.101:80;
            server 192.168.1.102:80;
        }
        upstream xxx02 {
               ....
        }

        #請求後端服務器的接口,/xxx01, 
        location /xxx01 {
            proxy_pass http://xxx01;
            proxy_set_header Host $host;
        }
        location /xxx02 {

        }

}

如何請求到某一台後端的服務器上:(側露配置)

默認策略,請求按順序分配到各後端服務器。
upstream xxx01 {
    server 192.168.1.101:80;
    server 192.168.1.102:80;          
}
# 通過 weight 分配請求權重,權重越高分配的請求越多。
upstream xxx02 {
    server 192.168.1.101:80 weight=3;  # 3/4 的請求
    server 192.168.1.102:80 weight=1;  # 1/4 的請求
}
# v同一客户端 IP 的請求固定轉發到同一後端,適用於會話保持(Session Persistence)
upstream xxx03 {
    ip_hash;
    server 192.168.1.101:80;
    server 192.168.1.102:80;
}
# 優先將請求分配給當前連接數最少的後端服務器。
upstream xxx04 {
    least_conn;
    server 192.168.1.101:80;
    server 192.168.1.102:80;
}
# 僅適用於 Nginx Plus,優先選擇響應時間短的後端。
upstream xxx05 {
    least_time header;  # 根據響應頭時間選擇
    server 192.168.1.101:80;
    server 192.168.1.102:80;
}
upstream xxx06 {
    server 192.168.1.101:80 max_fails=3 fail_timeout=30s;  # 失敗 3 次後暫停 30 秒
    server 192.168.1.102:80;
}
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.