Tôi có một ứng dụng Sinatra đang chạy trên Thin với Nginx làm proxy ngược và nhận được rất nhiều lưu lượng truy cập.
Người dùng của tôi đang báo cáo lỗi 502 và nhìn vào nhật ký Nginx, tôi thấy rất nhiều lỗi sau:
[cảnh báo] máy chủ thượng nguồn tạm thời bị vô hiệu hóa trong khi kết nối với thượng nguồn
[lỗi] kết nối () không thành công (111: Kết nối bị từ chối) trong khi kết nối với thượng nguồn
Nếu tôi xem nhật ký từ ứng dụng Sinatra, tôi không thấy có lỗi nào.
Tôi đang khởi động máy chủ Thin như sau:
--max-conns 15360 --max-persistent-conns 2048 --bắt đầu theo luồng
Tôi đã thiết lập như sau cho Ninx:
worker_processes tự động;
worker_rlimit_nofile 65535;
sự kiện {
công_nhân 15360 ;
}
Tệp máy chủ cho ứng dụng Sinatra:
người phục vụ {
server_name my_sinatra_app;
#rất nhiều bot cố gắng tìm lỗ hổng trong các trang web php
vị trí ~ \.php {
trả lại 404;
}
địa điểm / {
proxy_pass http://localhost:6903;
proxy_http_version 1.1;
proxy_set_header Nâng cấp $http_upgrade;
'nâng cấp' kết nối proxy_set_header;
proxy_set_header Máy chủ lưu trữ $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
#tăng bộ đệm
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
nghe 443 ssl; # được quản lý bởi Certbot
#...
nội dung #SSL
}
Tại sao chuyện này đang xảy ra? Quá nhiều xe cộ?
Giải pháp là gì? Tôi có tiếp tục tăng worker_connections
và --max-conns
cho đến khi các lỗi dừng lại?
đầu ra của htop
có vẻ như máy chủ có thể xử lý nhiều hơn:
Bất kỳ cái nhìn sâu sắc/lời khuyên?
CHỈNH SỬA
Mặc dù tôi không thấy bất kỳ lỗi nào trong nhật ký Sinatra hoặc trạng thái hệ thống
đầu ra, tôi đã nhận thấy rằng dịch vụ không bao giờ chạy quá lâu nên có vẻ như máy chủ Thin thường xuyên gặp sự cố. Bất kỳ ý tưởng làm thế nào tôi có thể gỡ lỗi này hơn nữa?