Tại sao 'multi_accept' 'off' là mặc định trong Nginx?


Câu trả lời:


13

Có lẽ bởi vì với bật, tất cả các quy trình worker đang hoạt động và cố gắng xử lý đồng thời tất cả các yêu cầu đến. Khi bị vô hiệu hóa, Nginx quyết định quy trình con nào sẽ giải quyết từng yêu cầu một. Vì Nginx rất hiệu quả trong việc này, điều này có lẽ phục vụ tốt cho hầu hết mọi người. Một số người coi đó là một rủi ro để kích hoạt nó, vì nó có thể làm ngập các kết nối công nhân với các yêu cầu. Cài đặt TCP của bạn ở cấp HĐH cũng có thể sẽ đóng một phần trong phần này.


3
Tôi đã có tình huống chính xác. Tôi đã cố gắng tìm hiểu các lệnh tự động worker_rlimit_nofile, worker_connections và worker_ Processes làm gì. Nginx là một proxy ngược cho một ứng dụng chấp nhận websockets. Nginx config cho phép 50 kết nối cho mỗi công nhân. Khi tôi có hai công nhân (do đó phải thiết lập 100 kết nối) và multi_accept được bật, tôi gặp lỗi mà các websockets không thể được tạo (công nhân đã có 50 kết nối thử nó ...). Khi multi_accept tắt, mọi thứ hoạt động hoàn hảo.
Hamburml
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.