En théorie, vous pouvez simplement utiliser une adresse IP: ADDR au lieu du chemin de prise:
socket: 127.0.0.1:3000
fonctionnera. Mais, si vous utilisez plusieurs processus fins, vous aurez un problème.
(Ce qui est très probable, parce que le rubis entier est une chose à part, si l'on considère les temps d'attente des E/S, le nombre de cœurs de processeur est peut-être plus élevé).
D'une certaine manière le décodeur d'adresse de socket de l'interpréteur de configuration fin est assez intelligent pour utiliser l'adresse IP ordinaire, mais il augmente l'IP et non le port pour les sockets supplémentaires. Ainsi, vous avez plusieurs instances minces écouter sur
# 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
plutôt qu'ils écouteront sur
# 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
Ce comportement surréaliste est probablement pas ce que vous voulez. (Bien que si vous avez des interfaces actives sur toutes les IP, cela pourrait fonctionner.)
Cependant, cette chose ruby a la particularité d'avoir une affectation directe entre ses options de ligne de commande et les options du fichier de configuration. Et une commande thin --help
vous les montrera. Vous pouvez appliquer une écoute TCP en utilisant les address
et port
Options:
#socket: /srv/cica/tmp/thin.sock
address: 127.0.0.1
port: 3000
Vous obtiendrez déjà le résultat correct. Les valeurs par défaut sont 0.0.0.0
et 3000
. Comme apache ne veut utiliser un seul port tcp avec ses paramètres les plus courants (ProxyPass
, ProxyPassReverse
directives), vous avez également besoin de quelques astuces, un cluster de proxy d'équilibrage de charge. L'extrait de configuration pertinent:
<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/