理論的には、あなたは、単にIPを使用することができます。ADDR代わりにソケットパスの:
socket: 127.0.0.1:3000
が動作します。しかし、複数のシンプロセスを使用すると、問題が発生します。
(まるでルビー全体がシングルスレッドなので、IO待ち時間を考慮すると、CPUコアの数としてかなり大きなプロセス番号も可能です)。
薄い構成インタープリタのソケットアドレスデコーダは、通常のIPアドレスを使用するには十分スマートですが、は、追加ソケットのポートではなくIPを増やします。。したがって、あなたは、この非現実的な行動は、あなたが望んでいないものを可能性があり、むしろ彼らは
# 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
リスニングする
# 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
に耳を傾け、複数の薄いのインスタンスを持つことになります。 (あなたがIPのすべてのアクティブなインターフェイスを持っている場合が、それは仕事ができる。)
しかし、このルビーの事はそのコマンドラインオプションと設定ファイルのオプションの間に直接の割り当てがあるという優れた機能を持っています。そしてthin --help
コマンドがあなたにそれを表示します。あなたはaddress
とport
オプションを使用してリスニングTCPを強制することができます
#socket: /srv/cica/tmp/thin.sock
address: 127.0.0.1
port: 3000
だから、あなたはすでに正しい結果を取得します。
デフォルト値は0.0.0.0
と3000
です。
apacheは、最も一般的な設定(ProxyPass
、ProxyPassReverse
のディレクティブ)を持つ単一のtcpポートだけにプロキシしたいので、ロードバランシングプロキシクラスタというちょっとしたトリッキーが必要です。関連する設定スニペット:
<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/