HEAD и proxy_pass: закрывается keep-alive соединение
Ilya Kuznetsov
worklez на gmail.com
Ср Янв 19 11:34:20 MSK 2011
Hello!
Возникла проблема: nginx закрывает keep-alive соединение с клиентом,
сделавшим HEAD запрос.
А теперь подробнее. Все запрашиваемые данные - статические файлы.
Вариант 1 (проблемный)
1. Клиент спрашивает HEAD /foo
2. nginx не находит ответа в кэше (try_files /cached/foo
@download_foo), идёт на апстрим, получает ответ
3. nginx передаёт ответ клиенту, клиент получает в заголовках
Connection: keep-alive
4. nginx закрывает соединение, клиент в шоке
Вариант 2 (хороший)
1. Клиент спрашивает HEAD /foo
2. nginx находит foo в кэше
3. nginx отвечает клиенту, клиент получает в заголовках Connection: keep-alive
4. nginx ждёт нового запроса от клиента пока не случится таймаут. ок
Вариант 3 (хороший)
1. Клиент спрашивает GET /foo
тогда, независимо от того, есть в кэше foo или нет, соединение не закрывается.
Версия nginx 0.8.53. Если этого описания недостаточно, готов выложить
выдержки из конфигов и дебажный error.log.
--
WBR,
Ilya Kuznetsov.
Подробная информация о списке рассылки nginx-ru