
У меня есть балансировщик нагрузки (Nginx) и другой сервер Apache, на котором размещен блог WordPress (на /blog). Я хочу, чтобы весь мой трафик на моем балансировщике нагрузки /blog
направлялся на этот сервер Apache. У меня следующие настройки:
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;
}
}
Это показывает мне список каталогов на сервере Apache, /
где я могу видеть. /blog
Однако это не то, что мне нужно. Я хочу, чтобы отображалось содержимое /blog
сервера Apache.
Если я удалю завершающий слеш в директиве местоположения /blog, то получу бесконечные перенаправления.
Как мне решить эту проблему?
решение1
Эту проблему можно решить, заменив:
proxy_pass http://blog/;
с
proxy_pass http://blog;
Пожалуйста, прочтите документы:http://nginx.org/r/proxy_pass
решение2
У меня была похожая проблема, и она была решена, когда я закомментировалproxy_set_header Host $host;