varnish and drupal
DESCRIPTION
* Что такое Varnish? * Установка и настройка (пошаговая инструкция). * Куча полезных ссылок.TRANSCRIPT
Varnish and DrupalVarnish and Drupal
Speaker: Vlad SavitskySpeaker: Vlad Savitsky
Working at
Skype: vlad_savitsky
ICQ: 205535814
+38096 530 27 12
ПланПлан
● Что такое Varnish?● Установка и настройка
Varnish – это реверс-прокси
Varnish – это реверс-прокси
Установка и настройкаУстановка и настройка
Поставить VarnishПоставить Varnish
● Varnish не входит в CentOS:● 64bit:
– rpm -Uvh http://download.fedora.redhat.com/pub/epel/5Server/x86_64/epel-release-5-4.noarch.rpm
● 32bit:– rpm -Uvh http://download.fedora.redhat.com/pub/epel/5Server/i386/epel-
release-5-4.noarch.rpm
● yum -y install varnish● chkconfig varnish on; chkconfig varnish --list; service
varnish start
Меняем порты в ApacheМеняем порты в Apache
● nano /etc/httpd/conf/httpd.conf● Search for: 'Listen'● Заменить: Listen 80● На: Listen 8080
● nano /etc/varnish/default.vcl● Найти :backend default● Заменить: .port = "80"● На: .port = "8080"
● service varnish restart; service httpd restart●
Меняем порт с 6081 Меняем порт с 6081 на 80 в Varnishна 80 в Varnish
● nano /etc/sysconfig/varnish● DAEMON_OPTS="-a :80 \● -T localhost:6082 \● -f /etc/varnish/default.vcl \● -u varnish -g varnish \● -s file,/var/lib/varnish/varnish_storage.bin,1G"
ПроверкаПроверка
● Открыть браузер и обновить страницу для проверки - сайт должен нормально показываться.
● Открыть Firebug● Вкладка Net - ответ сервера. Должен быть
параметр X-Varnish (это timestamp. 1я цифра - это текущ ее время, а вторая - время создания кешированной версии страницы)
● Cache-Control: public, max-age=180
Настройка DrupalНастройка Drupal
● Открыть страницу "Производительность"● Выбрать "External", потому что мы
используем Varnish. ● Друпал не будет использовать внутренний кеш и
не будет некоторых заголовков в HTTP ответе.
● Page cache maximum age: 10 min● Logout
ПроверкаПроверка
● Несколько раз перезагрузить страницу● Открыть Firebug (chrome://net-internals)● Посмотреть заголовки (время жизни кеша
(Cache-Control) и отсутствие друпал-параметра.
● Cache-Control: public, max-age=600
Передача IP в Apache (1)Передача IP в Apache (1)
● nano /etc/varnish/default.vcl● Add
● sub vcl_recv { # Add a unique header containing the client address
● remove req.http.X-Forwarded-For;● set req.http.X-Forwarded-For = client.ip;● }
Передача IP в Apache (2)Передача IP в Apache (2)
● nano /etc/httpd/conf/httpd.conf● Add
● LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" varnishcommon
● LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" varnishcombined
Передача IP в Apache (3)Передача IP в Apache (3)
● nano /etc/httpd/conf.d/site.conf● Add
● CustomLog /var/log/httpd/access_log varnishcommon
● CustomLog logs/ssl_request_log \● "%t %{X-Forwarded-For}i %{SSL_PROTOCOL}x %
{SSL_CIPHER}x \"%r\" %b"
Передача IP в DrupalПередача IP в Drupal
● nano sites/default/settings.php● Search for 'reverse_proxy'● Add at the end of file:
– $conf['reverse_proxy'] = TRUE;– $conf['reverse_proxy_addresses'] = array('127.0.0.1');
● '127.0.0.1' - если прокси работает на том же сервере, если на другом - будет другой IP.
ПроверкаПроверка
● Проверить правильность настройки можно в логах друпала - там указывается IP с которого был сделан запрос. Тип: 'user'
● Нужно перелогиниться и проверить снова.
varnishstatvarnishstat
● http://kly.no/posts/2009_12_08__Varnishstat_for_dummies__.html
Почитать: VarnishПочитать: Varnish
● https://www.varnish-cache.org/● Varnish Book
https://www.varnish-software.com/static/book/● http://pressflow.org/● http://drupal.org/project/varnish●
Почитать: УстановкаПочитать: Установка
● http://habrahabr.ru/post/68301/● http://plone.lucidsolutions.co.nz/web/reversepro
xyandcache/installing-varnish-web-cache-on-a-centos-5-vm
● http://blog.quilitz.de/2010/02/varnish-on-centos/● http://janaksingh.com/blog/install-pressflow-
drupal-varnish-apc-and-apache-centos-55-13
Почитать: МониторингПочитать: Мониторинг
● http://www.varnish-cache.org/docs/2.1/tutorial/statistics.html
● Varnishstat● http://kly.no/posts/2009_12_08__Varnishstat_for_dummie
s__.html
● varnishlog● http://www.varnish-cache.org/trac/ticket/85● http://kristianlyng.wordpress.com/2009/12/08/varnish
stat-for-dummies/
Почитать: ОптимизацияПочитать: Оптимизация
● http://kristianlyng.wordpress.com/2010/01/26/varnish-best-practices/
● http://cluster.planetlarg.com/add-customer-services/prepare-varnish/measure-varnish-speed-ab
● http://kristianlyng.wordpress.com/2009/05/25/common-varnish-issues/
Почитать: Ошибки VarinshПочитать: Ошибки Varinsh
● http://serverfault.com/questions/146605/understanding-this-error-apr-socket-recv-connection-reset-by-peer-104
Questions to speakerQuestions to speaker
Vlad Savitsky
http://shvetsgroup.com
Skype: vlad_savitsky
+38 096 530 27 12