私の環境には nginx プロキシと 2 つのアップストリーム (メイン アップストリーム サーバーとバックアップ アップストリーム サーバー) サーバーがあり、目標は選択されたアップストリームに応じて「proxy_set_header Host X/Y」を変更することです。
現時点では、別の nginx インスタンスを作成し、プロキシからのすべてのリクエストをこのインスタンスに送信し、ヘッダーを書き換えてリクエストをさらに送信するというアイデアしかありません。
もっと便利な解決策を知っている人はいますか?
簡略化した設定は次のとおりです。
http {
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
upstream images {
server backend.test.com:8080 ;
server backend-backup.test.com:8090 backup;
}
server {
listen 80 default_server;
server_name images-test.test.com;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
add_header Last-Modified "";
add_header Pragma "public";
add_header Access-Control-Allow-Origin $http_origin;
error_page 404 /404.html;
location = /404.html {}
error_page 500 502 503 504 /50x.html;
location = /50x.html {}
location / {
# some not related to the question lines deleted
proxy_set_header Host "backend.test.com";
proxy_pass http://images;
}
}
}