Tôi cần một số trợ giúp từ một số chuyên gia Linux. Tôi đang làm việc trên một webapp bao gồm một máy chủ sao chổi. Máy chủ sao chổi chạy trên localhost: 8080 và hiển thị url localhost: 8080/long_polling cho khách hàng để kết nối. Webapp của tôi chạy trên localhost: 80.proxy nginx để sao chổi
Tôi đã sử dụng nginx để yêu cầu proxy từ nginx đến máy chủ sao chổi (localhost: 80/long_polling proxy để localhost: 8080/long_polling), tuy nhiên, tôi có hai lời phàn nàn với giải pháp này:
- nginx mang lại cho tôi thời gian chờ của Cổng 504 sau một phút, mặc dù tôi đã thay đổi MỌI thiết lập một lần trong một lần đến 600 giây
- Tôi thực sự không muốn nginx phải ủy quyền cho máy chủ sao chổi - proxy nginx là không được xây dựng cho các kết nối lâu dài (lên đến nửa giờ có thể). Tôi thà cho phép khách hàng kết nối trực tiếp với máy chủ sao chổi và để máy chủ sao chổi xử lý nó.
Vì vậy, câu hỏi của tôi là: có bất kỳ thủ thuật linux nào cho phép tôi hiển thị localhost: 8080/long_polling tới localhost: 80/long_polling mà không sử dụng proxy nginx không? Phải có cái gì đó. Đó là lý do tại sao tôi nghĩ rằng câu hỏi này có lẽ có thể được trả lời tốt nhất bởi một guru Linux.
Lý do tôi cần/long_polling được hiển thị trên cổng 80 là vì vậy tôi có thể sử dụng AJAX để kết nối với nó (ajax cùng nguồn gốc-chính sách).
Đây là proxy.conf nginx tôi để tham khảo:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
send_timeout 600;
proxy_buffering off;
Vâng, nếu nginx sử dụng lượng bộ nhớ nhỏ đó, tôi rất thích làm việc với nginx làm máy chủ proxy phía trước. Chỉ cần thoát khỏi lỗi "Cổng thời gian chờ 504" xảy ra sau khoảng một phút (luôn xảy ra sau khoảng 55 - 65 giây). Cảm ơn câu trả lời của bạn. Tôi đang sử dụng node.js làm máy chủ COMET. – Chris