web-dev-qa-db-ja.com

リダイレクトループにつながるNginxリバースプロキシ

ロードバランサー(Nginx)と、wordpressブログ(/ blog)をホストしている別のApacheサーバーがあります。ロードバランサーのすべてのトラフィックを/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を見ることができますが、それは私が望むものではありません。Apacheからの/blogの内容を表示したいと思います。サーバ。

/ blog locationディレクティブの末尾のスラッシュを削除すると、無限のリダイレクトが発生します。

どうすればこれを解決できますか?

3
Jasdeep Singh

これは、次のものを置き換えることで解決できます。

proxy_pass http://blog/;

proxy_pass http://blog;

ドキュメントをお読みください: http://nginx.org/r/proxy_pass

1
VBart