Как исправить ошибку error_connection_error на сайте?
При открытии нашего сайта в браузере появлется ошибка err_connection_closed или err_connection_refused, в некоторых случая сайт открывается сразу после f5, иногда после нескольких нажатий.
Это ошибка появлется во всех браузерах.
Попробовали заходить на сайт через разных провайдеров и обнаружили, что у 3 из 4 это ошибка появляется через какое-то время. Иногда все хорошо работает, а потом вдруг опять это ошибка.
У нас на сервера ubuntu, nginx, php-fpm.
Нагрузки на сервер особо нет.
Еще мы посмотрели, что запрос до сервера доходит, в access.log есть запись, а сайт все равно не открывается с первого раза, а пишет err_connection_reset.
Ради эксперимента завели облачный сервер, туда поставали nginx, который просто проксировал на сервер, где сайт лежит и тогда у разных провайдеров сайт начинал открываться нормально.
Из-за чего может быть такое поведение, как это можно исправить?
Valentin Barbolin, да, браузер это ошибку показывает, после нажатия f5 как правило сайт нормально загружается.
iptables пустой, nginx, php-fpm стандартные настройи, на сайт нагрузки нет. В логах nginx и php-fpm ошибок никаких нет
Я просто не могу понять почему в access.log статус 200, но до браузера не всегда ответ доходит
Вот чисто ради того, что бы убедиться, что в access.log действительно попадают ВСЕ коннекты, даже те, у которых результат "Connection refused/closed"...
Открывайте в браузере свой сайт, дописав в конце URL-а: ?conn-check=1, что бы получился URL вида https://ya.ru/?conn-check=1. Цифру 1 можно увеличивать как вздумается, 2, 3, 10, 100000000000, что угодно. Как только произойдёт ошибка соединения - вот тогда и смотрите в access.log, ищите conn-check= с той цифрой, при которой произошла ошибка. И по логике, вы НЕ ДОЛЖНЫ найти именно этот запрос.
Valentin Barbolin, да смотрели, там в статусе запроса просто отменено,
Интересно почему начинает работать, если через прокси сервер заходить?
Мы поставили на другой сервер nginx, который просто проксирует все запросы на сервер, где находится сайт, и тогда работает нормально
kpb, не-а, статус вы так и не показали. Смотрите этот запрос в access.log nginx, там статус (при адекватной конфигурации логирования) написан. И судя по всему статус будет 499 - для nginx-а это "немедленно сбросить соединение".
kpb,
> Интересно почему начинает работать, если через прокси сервер заходить?
Так же меняется маршрут. Можно еще на MTU грешить. Попробуйте поправить MTU средствами iptables. https://habr.com/ru/post/702482/