Vì vậy, tôi đã cố gắng để có được điều này để làm việc 2 ngày và tôi bị mắc kẹt. Đây là lần đầu tiên tôi cấu hình một máy chủ cho các đường ray sử dụng NodeJS + Socket IO. Tôi là một noob với NGINX và Unicorn. Về cơ bản, phần NodeJS + SocketIO của ứng dụng của tôi sẽ đẩy tin nhắn cho người dùng được kết nối với ứng dụng của tôi. Đây là nginx.conf tôiCấu hình NGINX để làm việc với Socket.IO
server{
listen 80 default;
root /home/deployer/saigon/public;
try_files $uri/index.html $uri @unicorn;
location /sockets {
proxy_pass http://localhost:3210;
}
location @unicorn {
proxy_pass http://localhost:3000;
}
}
Và trong production.rb của tôi, tôi đã cấu hình các url mà người dùng sẽ phải gửi thông điệp tới/nhận tin nhắn từ
SOCKET_IO_URL ='http://localhost:8080/sockets
Tại sao 8080? Tôi sử dụng Vagrant để chuyển tiếp 8080 -> 80
Tôi đã thử truy cập http://localhost:8080/sockets và tôi có thể nhận được thông báo chào mừng ổ cắm. Tôi nhìn vào nhật ký máy chủ NodeJS của tôi và nó đã nhận được tin nhắn ổn. Tuy nhiên, khi nói đến phát sóng ..... nó chỉ không làm điều đó. Có ai từng nhận được loại ứng dụng này để làm việc với thiết lập mà tôi đang cố gắng thực hiện không? Tôi có nên đi với Apache + Unicorn không?
'
về cơ bản là ổ cắm/ổ cắm.io cần phải ở lại trong thư mục gốc sau đó .... có nghĩa là tôi phải biết yêu cầu nào sẽ rails và đó là sẽ socket io khi nó truy cập root? = ___ = argh – denniss
Hiện tại có. Nếu có thể, bạn có thể sử dụng tuyến đường phụ thay thế. http://socket.domain.com/. Điều này đã không làm việc cho tôi bởi vì tôi không muốn chi thêm tiền vào một chứng chỉ SSL cho một tên miền phụ. –
@denniss Tôi đã cập nhật câu trả lời của mình với một giải pháp thay thế. Vẫn đang đào sâu vào nó để tìm hiểu xem đây có phải là thiết kế dự định hay một lỗi cần sửa. –