「www」サブドメインからアクセスできるlighttpdでホストされているWebサイトがあります。node.jsとsocket.ioで作成されたポート8124でリッスンしているチャットサーバーもあります。
「チャット」サブドメインへのすべてのリクエストをポート8124にリダイレクトすることにより、すべてのクライアントトラフィックをポート80で発生させたいので、mod_proxyを有効にして、lighttpd.confに次のように追加しました。
$HTTP["host"] == "chat.myserver.com" {
proxy.server = (
"" => ((
"host" => "78.128.79.192",
"port" => "8124"
))
)
}
クライアントで、WebSocketに接続すると、
var socket = io.connect('http://chat.myserver.com');
node.jsから正しいメッセージを受け取ります:
debug - client authorized
info - handshake authorized 6067470561567883577
debug - setting request GET /socket.io/1/websocket/6067470561567883577
debug - set heartbeat interval for client 6067470561567883577
debug - client authorized for
debug - websocket writing 1::
しかし、ブラウザはエラーを出します:
Firefox can't connect to server ws://chat.myserver.com/socket.io/1/websocket/6067470561567883577
もちろん、ポート8124に直接接続すると、すべてが正しく機能します。
var socket = io.connect('http://www.myserver.com:8124');
しかし、私が言ったように、私はすべてのクライアントトラフィックがポート80にあることを望みます。それは可能ですか?