Nginx 反向代理程式導致重新導向循環

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 伺服器上的目錄列表,/我可以在其中看到但這不是我想要的,我希望它顯示來自 Apache 伺服器/blog的內容。/blog

如果我刪除 /blog 位置指令中的尾部斜杠,我最終會得到無休止的重定向。

我該如何解決這個問題?

答案1

您可以透過替換來解決此問題:

proxy_pass http://blog/;

proxy_pass http://blog;

請閱讀文件:http://nginx.org/r/proxy_pass

答案2

我有類似的問題,當我註解掉時它就解決了proxy_set_header Host $host;

相關內容