从理论上讲,你可以简单地使用IP:ADDR而不是套接字路径:
socket: 127.0.0.1:3000
会工作。但是,如果您使用多个精简进程,则会遇到问题。考虑到IO等待时间,甚至可能会有更高的进程数量,因为CPU核心的数量也是可能的。)(这很可能是因为整个ruby是单线程的。
不知何故,瘦配置解释器的套接字地址解码器足够智能地使用普通IP地址,但它增加了IP而不是增加了其他套接字的端口。因此,你将有多个实例薄监听
# thin will listen on these addresses
127.0.0.1:3000
127.0.0.2:3000
127.0.0.3:3000
127.0.0.4:3000
,而他们将在
# it would be okay, but not this happens
127.0.0.1:3000
127.0.0.1:3001
127.0.0.1:3002
127.0.0.1:3003
在听这超现实的行为很可能不是你想要的。 (尽管如果你在所有的IP上都有活动接口,它可以工作。)
但是,这个ruby的东西有一个很好的特性,就是在它的命令行选项和配置文件选项之间有一个直接的分配。并且一个thin --help
命令将显示给你。您可以强制执行TCP使用address
和port
选择听:
#socket: /srv/cica/tmp/thin.sock
address: 127.0.0.1
port: 3000
所以,你会找到一些正确的结果。
默认值是0.0.0.0
和3000
。
由于apache想要代理只有一个单一的TCP端口与其最常见的设置(ProxyPass
,ProxyPassReverse
指令),也需要一些小小的欺骗,负载平衡代理群集。相关的配置代码片段:
<Proxy balancer://cicas>
BalancerMember http://localhost:3000 disablereuse=On route=cica1
BalancerMember http://localhost:3001 disablereuse=On route=cica2
BalancerMember http://localhost:3002 disablereuse=On route=cica3
BalancerMember http://localhost:3003 disablereuse=On route=cica4
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass/balancer://cicas/