Nginx 反向代理导致重定向循环

Nginx 反向代理导致重定向循环

我有一个负载均衡器 (Nginx) 和另一个托管 wordpress 博客 (at /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但这不是我想要的,我希望它显示/blog来自 Apache 服务器的内容。

如果我删除 /blog 位置指令中的尾部斜杠,我最终会得到无休止的重定向。

我该如何解决这个问题?

答案1

您可以通过替换来解决这个问题:

proxy_pass http://blog/;

proxy_pass http://blog;

请阅读文档:http://nginx.org/r/proxy_pass

答案2

我遇到了类似的问题,当我注释掉它时它就解决了proxy_set_header Host $host;

相关内容