Рейтинг:1

Sinatra + Thin + Nginx connect () не удалось (111: соединение отклонено) при подключении к восходящему потоку

флаг cn

У меня есть приложение 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 вывод, я заметил, что служба никогда не работает очень долго, поэтому кажется, что тонкий сервер часто дает сбой. Любая идея, как я могу отладить это дальше?

Рейтинг:0
флаг cn

Таким образом, проблема была на самом деле с тонким сервером, по какой-то причине он продолжал падать каждые несколько минут с ошибкой C++, и поэтому Nginx выдавал эти ошибки при попытке подключения к тонкому и терпел неудачу (потому что тонкий зависал/перезагружался).

Решением было заменить Thin на Puma, после этого проблем больше не было.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.