Я видел несколько php-сайтов после того, как поместил Varnish перед ними и ответил через 0,2 секунды. Теперь у меня есть:
Моя настройка Varnish стандартная:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
#some redirects from 80 to https hosts
}
Nginx прослушивает 443 и передает его: 80 varnish и затем varnish передайте это nginx: 8080, который имеет два восходящих сервера. Nginx и два сервера находятся в локальной сети (Microsoft azure)
Теперь мой ответ страницы составляет от 0,7 до 1,5 секунд, и это просто безумие, потому что домашняя страница использует memcached для большинства частей (даже вызовы ajax, которые менее 0,1 секунды, использовали некоторые memcached
При запуске приложения nodejs на локальном компьютере я получил ответ 0,3 - 0,4.
Насколько я понимаю, Varnish не работает:
Я могу видеть данные в журнале Varnish по каждому запросу, но это совершенно не помогает.
Итак, есть ли кто-нибудь, кто может помочь мне этим?
Varnish, Nginx и даже Apache могут ускорять динамические веб-сайты путем кэширования содержимого. Вот что они делают. Они не могут ускорить медленный сайт, только поместив его впереди. Они должны кэшировать контент, которому обычно требуется время, чтобы отобразиться на сервере и доставить его, как если бы это была статическая веб-страница.
Лучший способ сделать контент кешируемым - это установить правильные заголовки кеша в вашем приложении. Приложение - подходящее место для этого, поскольку всегда существует разный контент в смысле кэшируемости:
Но иногда веб-разработчик не знает о кешировании, и поэтому приложение не отправляет правильные заголовки кеширования. Если это так, вам необходимо определить различные типы контента и настроить Varnish, Nginx или Apache, чтобы они поступали правильно с нужным типом контента.
На самом деле я бы проверил, насколько это сложно. Вы уже используете Nginx для своего веб-сайта. Поэтому для меня нет смысла устанавливать дополнительное программное обеспечение, поскольку Nginx также может обрабатывать кеширование. Но я бы рекомендовал использовать Varnish, если вам нравится использовать ESI или действительно сложные проверки для различения типов контента.
Следующие шаги для вас:
Внимательно изучите заголовки кэширования (Cache-Control) вашего приложения. Я предполагаю, что ваше приложение их не отправляет, поэтому Varnish не может кэшировать и не может ускорить ваше приложение.