Обратный прокси-сервер Nginx, приводящий к циклу перенаправлений

Обратный прокси-сервер Nginx, приводящий к циклу перенаправлений

У меня есть балансировщик нагрузки (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;

Связанный контент