我需要设置一个反向代理,将请求转发给正确的应用服务器。例如,有两个应用程序服务器在后台运行。一台服务器运行Rails而另一台运行Django。如果请求进入我的反向代理,它会将该请求定向到Rails应用服务器。如果Rails应用服务器无法提供该请求,因为它不支持该请求,则Rails应用服务器将向反向代理返回404,反向代理将该请求定向到Django应用服务器(应该是正确的)。
有没有人知道这个堆栈的良好设置或这个反向代理的好候选人? Ruby相关的东西会很好,但不一定非。
答案 0 :(得分:2)
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;
}
}
答案 1 :(得分:1)
我使用Squid作为我的反向代理。效果很好。 http://wiki.squid-cache.org/SquidFaq/ReverseProxy