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;
}