Tôi có một trang web được lưu trữ trên lighttpd, có thể truy cập tại tên miền phụ "www". Tôi cũng có một máy chủ trò chuyện lắng nghe trên cổng 8124 được thực hiện với node.js và socket.io.Chuyển hướng lưu lượng websocket trên cổng 80 bằng lighttpd
Tôi muốn tất cả lưu lượng khách hàng xảy ra trên cổng 80, bằng cách chuyển hướng tất cả các yêu cầu đến "chat" subdomain để cổng 8124. Vì vậy, tôi cho phép mod_proxy và trong lighttpd.conf Tôi nói thêm:
$HTTP["host"] == "chat.myserver.com" {
proxy.server = (
"" => ((
"host" => "78.128.79.192",
"port" => "8124"
))
)
}
Trên khách hàng, khi tôi kết nối với WebSocket,
var socket = io.connect('http://chat.myserver.com');
tôi nhận được tin nhắn ngay từ 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::
Nhưng trình duyệt cung cấp cho một lỗi:
Firefox can't connect to server ws://chat.myserver.com/socket.io/1/websocket/6067470561567883577
Tất nhiên, mọi thứ hoạt động một cách chính xác nếu tôi kết nối trực tiếp vào cổng 8124:
var socket = io.connect('http://www.myserver.com:8124');
Nhưng, như tôi đã nói, tôi muốn tất cả lưu lượng khách hàng để được trên cổng 80. Có khả năng không?
Tôi vừa cài đặt Haproxy và nó hoạt động hoàn hảo. Cảm ơn bạn – lortabac
Bạn được chào đón. Và cảm ơn sự xác nhận vì tôi đã không thử nghiệm nó (như tôi đã nói) và mong muốn làm điều đó :) –
Xin chào! Tôi hiện đang cố gắng để làm cho websocket với socket.io làm việc với lighttpd và tôi đang đối mặt với một vấn đề. Có vẻ như nó không thể kết nối với tiêu đề 'ws: // /socket.io/1/ /: 'Connection' bị thiếu'. Tập tin conf của HAProxy của bạn là gì khi bạn nói nó hoạt động với nó (thay vì lighttp mod_proxy). Cảm ơn nhiều! –
D4V1D