Ich habe einen Nginx-Proxy und 2 Upstream-Server (Haupt-Upstream-Server und Backup-Upstream-Server) in meiner Umgebung. Das Ziel besteht darin, „proxy_set_header Host X/Y“ zu ändern, je nachdem, welcher Upstream ausgewählt wurde.
Im Moment habe ich nur eine Idee: eine weitere Nginx-Instanz zu erstellen und alle Anfragen von meinem Proxy an diese Instanz zu senden, den Header neu zu schreiben und die Anfrage weiterzuleiten.
Kennt jemand eine bequemere Lösung?
Hier ist meine vereinfachte Konfiguration:
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;
}
}
}