Пожалуйста, помогите решить проблему HTTP keep-alive. В основном у меня amazon-ami linux (Версия 2012.09) на EC2 под управлением nginx (v1.2.6).
Хром (Версия 25.0.1364.99) обычно обращается к странице HTTP, затем примерно через 30 секунд соединение разрывается (неизвестно почему), что отслеживается на сервере netstat
. После этого, если хром запрашивает что-то с сервера, он ничего не может получить и таймауты около минуты, ожидая чего-то при явно разорванном соединении. После тайм-аута последующие запросы работают нормально.
Nginx настроен с keepalive_timeout 70s 60s;
cat /proc/sys/net/ipv4/tcp_keepalive_time
показывает 7200
Это может быть что-то легкое, но поиск в Google выявил много похожих проблем, но не совсем. (https://code.google.com/p/chromium/issues/detail?id=27400 читайте здесь http://blog.fastmail.fm/2011/06/28/http-keep-alive-connection-timeouts/).
Какие ответы были бы полезны:
Как изменить конфигурацию сервера, чтобы избежать чрезмерного ожидания разорванного соединения из Chrome
В каком продукте может содержаться ошибка или какой обходной путь может быть доступен
Отключение сохранения активности для хрома - это своего рода крайнее средство: поскольку это побеждает цель, поскольку я хочу уменьшить задержку ответа и иметь длительное время поддержания активности HTTP-соединения, по крайней мере, минуту. Спасибо
В такой среде HTTPS-соединение не закрывается скрытно через 30 секунд, поэтому, когда я полностью помещаю сайт под HTTPS (что на самом деле планировалось), проблема Chrome Keep = Alive больше не проявляется с Keep-Alive в течение минуты, что приемлемо.
К сожалению, у меня не было ресурсов, чтобы инвестировать в отладку TCP. Так что загадка, как таковая, не решена полностью.
Большое спасибо за предложения!