Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.
Я получаю эту ошибку на сервере Amazon EC2. Это не происходит на определенной странице моего веб-сайта. Я не думаю, что это ошибка браузера Chrome, потому что, когда я открываю сафари, я не получаю ошибку, я получаю белую страницу. Не уверен, что происходит или почему. В основном, я ищу основные причины этой ошибки сервера. Любые идеи будут высоко оценены. Если вам нужно, чтобы я предоставил какую-либо конкретную информацию, дайте мне знать.
Подумайте об этом, эта ошибка началась, когда мы обновили mongo php driver 1.2.7. Мысли?
Неисправность – выстрел с curl
из командной строки. Например, http://aws.amazon.com/
$ curl -i http://aws.amazon.com/ HTTP/1.1 200 OK Date: Tue, 08 May 2012 19:55:14 GMT Server: Server x-amz-id-1: 0C8YK9MYJMCCSE8R09E5 x-amz-id-2: zx0HtU9Ub39tobXNBiMRLuE2mvnhQo4Kh1fyj0MdJcg= Cache-Control: max-age=0 Expires: Tue, 08 May 2012 19:55:14 GMT Content-Type: text/html; charset=UTF-8 Set-cookie: aws-session-id-time=2082758401l; path=/; domain=.amazon.com; expires=Tue, 01-Jan-2036 00:00:01 GMT Set-cookie: aws-session-id=000-0000000-0000000; path=/; domain=.amazon.com; expires=Tue, 01-Jan-2036 00:00:01 GMT Vary: User-Agent Transfer-Encoding: chunked ...
В -i
включены заголовки. Вы должны увидеть фактический код состояния и затем соотнести с вашим access_log
и error_log
. 🙂
Позвольте мне знать, если это помогает!
Просто хочу задокументировать мой ответ на эту проблему. Для меня curl
показало правильный HTML, но моего браузера не было.
Я быстро отключил Session Stickiness
от консоли AWS для моего LoadBalancer, и теперь он работает отлично.
@ Советы по curl
Тилла блестящие 🙂
Изменить: как вы справляетесь с этой проблемой в будущем, когда вам нужна личность сеанса? Понятия не имею. Но на этом должны быть ответы!
На всякий случай кто-то еще увидит этот вопрос, и ответ @ Till не помог. Я хотел бы указать, что балансировка балансировки нагрузки Amazon имеет жесткий 60-секундный тайм-аут. Невозможно отключить его.
https://forums.aws.amazon.com/thread.jspa?threadID=33427&start=0&tstart=50
Вам нужно добавить «сердцебиение» вашей страницы, чтобы вернуть данные через HTTP-соединение. ELB контролирует активность и сохранит ваш сеанс.
Это может быть за бортом для некоторых приложений, оно полностью удаляет любую буферизацию php, которая была запущена, и сбрасывает данные на веб-сервер. В дополнение к этому, GZIP необходимо отключить на веб-сервере (apache или другом).
Сценарий возвращает довольно большой объем данных, около 64 000 пробелов. Последовательные одиночные пробелы игнорируются браузером, поэтому, как правило, довольно легко настроить страницу для использования этих функций без каких-либо проблем с отображением.
Вам также не нужно вызывать эту функцию очень часто. У вас есть 60 секунд, я обычно стараюсь, чтобы моя работала каждые 10-15 секунд, но поскольку она спит в течение одной секунды, не называйте ее слишком часто или вы увидите значительное замедление на вашей странице.
Вот функция:
function ELB_HeartBeat(){ echo str_repeat(' ',1024*64); ob_implicit_flush(true); while ( @ob_end_flush() ); @flush(); @ob_flush(); sleep(1); }