【问题标题】:Setup for Reverse Proxy反向代理设置
【发布时间】:2012-03-19 14:23:50
【问题描述】:

我需要设置一个反向代理,将请求转发到正确的应用服务器。例如,有两个应用服务器在后台运行。一台服务器运行 Rails,而另一台运行 Django。如果一个请求进入我的反向代理,它会将该请求定向到 Rails 应用服务器。如果 Rails 应用服务器因为不支持该请求而无法处理该请求,Rails 应用服务器将向反向代理返回 404,反向代理会将请求定向到 Django 应用服务器(应该是正确的)。

是否有人知道此堆栈的良好设置或此反向代理的良好候选者?与 Ruby 相关的东西会很好,但不是必须的。

【问题讨论】:

    标签: ruby-on-rails ruby nginx reverse-proxy


    【解决方案1】:
    server {
        Location / {
            error_page 404 /django$request_uri;
    
            rewrite ^/django_specific_url_1$ /django$request_uri? last;
            rewrite ^/django_specific_url_2$ /django$request_uri? last;
            ...
            rewrite ^/django_specific_url_n$ /django$request_uri? last;
    
            proxy_pass http://127.0.0.1:ruby_port;
        }
    
        Location /django {
            internal;
            proxy_pass http://127.0.0.1:django_port$request_uri;
        }
    }
    

    【讨论】:

    • 谢谢。我有另一个使用相同场景但添加了附加条件的问题。你如何得到它,以便它总是将请求传递给服务器#2,如果它匹配一组特定的 URL?谢谢!
    • 我已修改问题以解决您的新问题。请注意,当您关注引入新条件的项目时,您确实应该对这些项目进行新的单独查询。
    • 非常感谢。差不多就是我需要的!
    【解决方案2】:

    我使用 Squid 作为我的反向代理。效果很好。 http://wiki.squid-cache.org/SquidFaq/ReverseProxy

    【讨论】:

      猜你喜欢
      • 2016-07-05
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      相关资源
      最近更新 更多