nginx удаляет последние измененные и если измененные заголовки, так как моему приложению rails они нужны
Приложение My Rails 3.2 использует - через #stale?
- If-Modified-Since
HTTP-заголовок в запросе и Last-Modified
заголовок в ответе, чтобы решить, должен ли он генерировать некоторые данные динамически. Это очень хорошо работает в разработке (будь то использование webrick или unicorn_rails) как curl -D headers.txt
показывает, что если правильно If-Modified-Since
значение предоставляется 304 ответ, в то время как Last-Modified
В противном случае заголовок отправляется вместе с данными запроса.
К сожалению, однажды развернутый за nginx, ни If-Modified-Since
(предоставляя правильное значение заголовка) передается единорогу - и, следовательно, приложению Rails - ни Last-Modified
передается клиенту: запрос безоговорочно генерируется, и ответ никогда не содержит правильных заголовков.
1 ответ
Оказывается, на самом деле nginx ничего не зачищал. Приборы показали, что If-Modified-Since
был получен контроллером. Рельсы #stale?
получал запрос, содержащий плохие результаты, в результате чего nil
аргумент, молча проглатывая его и впоследствии игнорируя сравнения с If-Modified-Since
и позиционирование Last-Modified
в nil
,