我们如何在Apache中进行以下Nginx配置? 基本上代理到Unix套接字而不是负载平衡端口 我希望Unicorn处理负载平衡而不是Apache。
upstream unicorn_server {
server unix:/home/prats/public_html/myapp/current/tmp/sockets/unicorn.sock
fail_timeout=0;
}
server {
...
...
...
location / {
...
...
# If you don't find the filename in the static files
# Then request it from the unicorn server
if (!-f $request_filename) {
proxy_pass http://unicorn_server;
break;
}
...
...
}
}
答案 0 :(得分:3)
经过一段时间的搜索后,我得出结论,通过套接字使用Apache2 + Unicorn是不可能的。 我得到的最远的是在unicorn提供的套接字文件上使用mod_fastcgi,但是在尝试访问页面时我得到了403 Forbidden。 似乎FastCGI需要与Unicorn使用的协议不同的协议。 如果你必须使用Unicorn和Apache,请坚持使用Mark Kolesar的解决方案。请注意,您可能会遇到问题(取自http://rubyforge.org/pipermail/mongrel-unicorn/2011-July/001057.html):
Apache + Unicorn仍然不受支持(据有人所知), 它没有完全缓冲响应和完全隔离的请求 独角兽从慢客户的有害影响。
答案 1 :(得分:2)
ProxyRequests Off
ProxyPass / stylesheets /!
ProxyPass / javascripts /!
ProxyPass / images /!
ProxyPass / http://example.com:8080/
ProxyPassReverse / http://example.com:8080/
答案 2 :(得分:0)
你不能在中间使用unixcat吗? 将proxypass发送到localhost:某事 安装了xinetd + unixcat /etc/xinetd.d/unicorn holding:
service livestatus
{
type = UNLISTED
port = someport
socket_type = stream
protocol = tcp
wait = no
cps = 100 3
instances = 500
per_source = 250
flags = NODELAY
user = someone
server = /usr/bin/unixcat
server_args = /var/run/unicorn/mysocket
only_from = 127.0.0.1
disable = no
}