【问题标题】:Nginx Reverse Proxy 301 RedirectsNginx 反向代理 301 重定向
【发布时间】:2014-09-19 13:49:09
【问题描述】:

我正在尝试以一种我不确定是否可行的方式设置 nginx 代理...基本上,我有 3 台服务器正在运行。服务器 A 是一个 nginx 反向代理。服务器 B 和 C 是后端服务器。当客户端请求http://domain.com/file.jpg 时,它会访问服务器 A,然后将请求传回服务器 B。该文件可能在服务器 B 或 C 上。如果服务器 B 没有该文件,它会发送一个 301 重定向到该文件服务器 C。这个问题是 301 回到浏览器并更改客户端中的 URL。

我想知道是否可以让 301 留在内部。 Nginx 会看到并跟随 301 到服务器 C 上的正确文件位置,但客户端不会知道其中的区别。客户端应该无法判断文件是在B还是C,甚至不知道它们的地址......

谢谢!

【问题讨论】:

  • 您可以使用error_page 指令捕获 301 重定向。

标签: http redirect nginx centos reverse-proxy


【解决方案1】:

您可以考虑为此使用 proxy_next_upstream。

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream

【讨论】:

    【解决方案2】:

    使用上游为反向代理设置负载平衡,它会自动从 2 个后端服务器获取数据。

    【讨论】:

    • 即使数据只存在于两个后端服务器之一上?
    • 在直接到上游之前使用位置和检查请求
    • 您不能使用位置来预先检查请求。有数千万个文件。无法提前知道文件驻留在哪个服务器上。
    猜你喜欢
    • 1970-01-01
    • 2017-01-18
    • 2019-03-12
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    相关资源
    最近更新 更多