У меня есть приложение Sinatra, которое работает на Thin с Nginx в качестве обратного прокси-сервера и получает много трафика.
Мои пользователи сообщают об ошибках 502, и, просматривая журналы Nginx, я вижу много таких ошибок:
[предупреждение] восходящий сервер временно отключен при подключении к восходящему
[ошибка] connect() не удалось (111: соединение отклонено) при подключении к восходящему каналу
Если я смотрю журналы из приложения Sinatra, я не вижу ошибок.
Я запускаю тонкий сервер со следующим:
--max-conns 15360 --max-persistent-conns 2048 --потоковый запуск
Я установил следующее для Ninx:
рабочие_процессы авто;
worker_rlimit_nofile 65535;
События {
worker_connections 15360;
}
Хост-файл для приложения Sinatra:
сервер {
имя_сервера my_sinatra_app;
#много ботов пытаются найти уязвимости в php сайтах
расположение ~ \.php {
вернуть 404;
}
место расположения / {
proxy_pass http://localhost:6903;
прокси_http_версия 1.1;
proxy_set_header Обновить $http_upgrade;
proxy_set_header Соединение «обновление»;
proxy_set_header Хост $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
#увеличить буферы
proxy_buffer_size 128k;
proxy_buffers 4 256 КБ;
proxy_busy_buffers_size 256 КБ;
}
слушать 443 ssl; # под управлением Certbot
#...
# SSL материал
}
Почему это происходит? Слишком много трафика?
Какое решение? Продолжаю ли я увеличивать worker_connections
и --max-conns
пока ошибки не прекратятся?
Результат хтоп
похоже, что сервер может обрабатывать больше:
Любое понимание/совет?
РЕДАКТИРОВАТЬ
Хотя я не вижу никаких ошибок в журнале Sinatra или статус systemctl
вывод, я заметил, что служба никогда не работает очень долго, поэтому кажется, что тонкий сервер часто дает сбой. Любая идея, как я могу отладить это дальше?