
Ich habe einen Load Balancer (Nginx) und einen weiteren Apache-Server, der ein WordPress-Blog hostet (unter /blog). Ich möchte, dass der gesamte Datenverkehr auf meinem Load Balancer unter /blog
an diesen Apache-Server geleitet wird. Ich habe die folgenden Einstellungen:
upstream main_app {
server main_app_address;
}
upstream blog {
server blog_address;
}
server {
server_name appname.com;
return 301 http://www.appname.com$request_uri permanent;
}
server {
listen 80;
server_name appname.com;
location / {
client_max_body_size 8M;
proxy_pass http://main_app;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
}
location /blog {
proxy_pass http://blog/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
}
}
Dadurch wird mir die Verzeichnisliste auf dem Apache-Server angezeigt, /
wo ich das sehen kann. /blog
Das ist jedoch nicht, was ich will, ich möchte, dass der Inhalt /blog
vom Apache-Server angezeigt wird.
Wenn ich den abschließenden Schrägstrich in der /blog-Standortdirektive entferne, erhalte ich endlose Weiterleitungen.
Wie löse ich das?
Antwort1
Sie können dies lösen, indem Sie Folgendes ersetzen:
proxy_pass http://blog/;
mit
proxy_pass http://blog;
Bitte lesen Sie die Dokumentation:http://nginx.org/r/proxy_pass
Antwort2
Ich hatte ein ähnliches Problem und es wurde gelöst, als ich es auskommentierteproxy_set_header Host $host;