Добрый вечер. Нужна помощь. Есть веб сервер Nginx, за ним на физически другой машине стоит Apache. У Nginx стоит настройка proxy_pass https://ip_address_of_apache:443; Сертификат настроен и там и там один, таким образом коммуникации от пользователя до первого сервера и между серверами зашифрованы. Все это находится под серьезной нагрузкой (десяток обращений в секунду к PHP, статика не считается). Иногда случается сбой при котором какое-то короткое время сайт недоступен, тогда скапливается двойной поток запросов (за счет F5) который постепенно рассасывается. Это было нормальным явлением и особо не мешало. Сейчас уже 3 раза за месяц происходила ситуация, которая снаружи выглядит как таймаут соединения к сайту по HTTPS. Внутри на первом сервере 2 потока nginx едят по 49% CPU, на втором сервере нагрузка 0%, в логе ошибок пусто. Между серверами связь нормальная, иначе была бы ошибка connect to upstream failed. При запросе к первому серверу по HTTP соединение успешно устанавливается и nginx отдает как статический так и динамический контент через локальный Apache (он там есть, панелька висит). Включая проблемный домен. Может быть чуть дольше обрабатывает запрос, но проблемы нет. Таким образом, ошибка таймаута связана именно с установкой большого числа сквозных SSL соединений через nginx. ВОЗМОЖНО это как-то связано с тем что раньше стоял покупной сертификат на 2 года, сейчас стоит свежий Lets Encrypt на 3 месяца. Может быть связано с тем что раньше соединение между фронтендом (nginx) и бекендом (apache2) осуществлялось поверх VPN туннеля без SSL, а сейчас без VPN туннеля но по SSL.
Бгг, опять поднял магазинчик хлама перепродаж кетайского барахла? Скоко деньжат пустил на рекламу, SEO-раб? Замечает Блиц - все вы, снежные ниггеры, так и носятись, тут и щас, со своими дрянными купюрами - никому не нужными ))
По HTTPS ? Для начала, кмк, имеет смысл включить (хотя бы на короткое время) отладочные журналы в nginx (из Вашего описания следует, что проблема, вероятнее всего, где-то вокруг nginx), или даже периодически снимать статистику через REST API. Никогда не сталкивался с зависимостью скорости работы сервера от вида организации, выдавшей сертификат. Количество worker_process в nginx.conf какое ? P.S.: Так или иначе Вам точно необходимо настраивать мониторинг ключевых показателей серверов и канала между ними - по крайней мере, а) независимый от связки "NGINX - APACHE" мониторинг сетевой доступности узлов и портов (443/tcp как минимум) б) размер очереди запросов в NGINX в) основные технические параметры сервера NGINX - загрузка процессора, памяти, locks
Опечатки нет. Клиент - домен (nginx тут - apache там). Одновременно если обращаться по http соединение устанавливается и файл отдается нормально, если по https то connection timeout. Рестарт процессов nginx / apache приводит к тому что первый запрос может и отработает, но потом опять накапливается лавина запросов от клиентов и происходит ошибка соединения. worker_process = 2, больше нет смысла. Ядро одно, потому при загрузке каждый процесс набирает по 49%. Ставил 4 штуки - было по 25%, пробовал один - 99%. На глаз показалось что при двух после перезагрузки некоторое время живет, если любое другое число - после перезагрузки мой запрос не срабатывает, но это не точно, может просто не успел до завала. CRON задачу которая будет раз в минуту с машины 1 запрашивать машину 2 по HTTP и HTTPS и писать заголовок в файл лога сейчас напишу, но думаю что проблема не в соединении между серверами, а именно в обработке большого числа одновременных SSL соединений (которое каким-то образом не влияет на сколь угодно большое число не зашифрованных подключений все к тому же nginx) так как это wget'ом проверял. А вот про мониторинг показателей совсем ничего не понял, это как делать? Знаю только как получить количество файлов, открытых nginx'ом.
Таки попробуйте debug в nginx - до понимания того, на каком моменте (после каких запросов) происходит "зависание"), сложно дать какие-либо дальнейшие рекомендации. Про мониторинг nginx есть хорошая статья прямо в документации.