Корневая страница моего сайта heroku по сути статична, в представлении присутствует некоторый рубиновый код, но нет ничего конкретного для отдельного пользователя, поэтому я бы хотел, чтобы Varnish кэшировал его и обслуживал, не затрагивая мой dyno (обратите внимание, что в приложении есть другие динамические страницы).
В Heroku все выглядит очень просто здесь . Просто добавьте response.headers['Cache-Control'] = 'public, max-age=300'
, и он будет кешироваться в течение 5 минут, прежде чем будет восстановлен.
Чтобы проверить это, я внес изменения и вывел дату (Time.now
) на страницу, чтобы посмотреть, будет ли она оставаться неизменной в течение 5 минут, но каждый раз, когда я получаю доступ к странице в новом браузере, она обновляется. Обновление в том же браузере работает нормально, но я думаю, что это связано с кэшированием браузера, а не с Heroku.
Если это поможет, когда я делаю curl -i, чтобы получить заголовки HTTP, я получаю это:
HTTP/1.1 200 OK^M
Server: nginx/0.7.67^M
Date: Thu, 29 Dec 2011 02:03:33 GMT^M
Content-Type: text/html; charset=utf-8^M
Connection: keep-alive^M
Cache-Control: public, max-age=300^M
X-Ua-Compatible: IE=Edge^M
Etag: "8a1b58f048968803980417a2914764d0"^M
X-Runtime: 0.038393^M
Content-Length: 8310^M
X-Varnish: 1040651825^M
Age: 0^M
Via: 1.1 varnish^M
По сути, я хотел бы убедиться, что он генерируется один раз, а затем кешируется в Varnish. Я пропускаю какие-либо параметры, нужно ли настраивать что-то еще? Если у вас есть другие предложения по размещению быстрой статической страницы, я бы тоже их полюбил.
Спасибо!