Hello, All,
Сидел тут игрался с рельсами и хитрой схемой кеширования с
использованием SSI и мемкеша... И наступил на странную проблему -
похоже, что нгинкс при выполнении запросов для <!--virtual--> работает
как-то не так, как для основного потока запросов. Для начала опишу
нашу схему:
1) за нгинксом стоят рельсы по хттп (монгрелы) и нгинкс на них проксирует запрос
2) ответ в большей мере - статика, потому мы решили ложить ее в мемкеш
(или на диск) при первом обращении, а динамические куски типа
пейджинга вставлять через нгинкс с использованием SSI.
3) нгинкс, получив ответ, спрашивает кусочки у рельсов и вставляет в
страницу, уходящую юзеру
Схема работает как часы, если не использовать мемкеш. Если же его
использовать (локейшн с мемкешем и по 404-й ошибке уход на
фолбек-локейшн с проксированием), то сама страница обрабатывается
нормально (первый раз - рельсами, а потом - достается из кеша), а вот
кусочки в сси почему-то спрашиваются у рельсов не по их собственным
урлам, а все одинаково: GET /fallback, что приводит к куче ругательств
со стороны рельсов и сломанной страничке.
Если все кусочки (у них урлы удобные) обрабатывать отдельным локейшном
с проксированием (без мемкеша), то опять как часы :-) - основные
странички из кеша, а кусочки - через прокси рельсами отдаются.
В общем, странно это - хочется понять, где проблема.
Для Игоря - в аттаче конфиг и дебаг-лог двух запросов: первого (с
пустым кешем) и второго (с главной страницей в кеше).
Заранее благодарю за помощь.
--
Alexey Kovyrin
http://kovyrin.info/