varnish and drupal

26
Varnish and Drupal Varnish and Drupal

Upload: vlad-savitsky

Post on 17-Dec-2014

2.994 views

Category:

Technology


0 download

DESCRIPTION

* Что такое Varnish? * Установка и настройка (пошаговая инструкция). * Куча полезных ссылок.

TRANSCRIPT

Page 1: Varnish and Drupal

Varnish and DrupalVarnish and Drupal

Page 2: Varnish and Drupal

Speaker: Vlad SavitskySpeaker: Vlad Savitsky

Working at

Skype: vlad_savitsky

ICQ: 205535814

[email protected]

+38096 530 27 12

Page 3: Varnish and Drupal

ПланПлан

● Что такое Varnish?● Установка и настройка

Page 4: Varnish and Drupal

Varnish – это реверс-прокси

Page 5: Varnish and Drupal

Varnish – это реверс-прокси

Page 6: Varnish and Drupal
Page 7: Varnish and Drupal

Установка и настройкаУстановка и настройка

Page 8: Varnish and Drupal

Поставить 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

Page 9: Varnish and Drupal

Меняем порты в 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●

Page 10: Varnish and Drupal

Меняем порт с 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"

Page 11: Varnish and Drupal

ПроверкаПроверка

● Открыть браузер и обновить страницу для проверки - сайт должен нормально показываться.

● Открыть Firebug● Вкладка Net - ответ сервера. Должен быть

параметр X-Varnish (это timestamp. 1я цифра - это текущ ее время, а вторая - время создания кешированной версии страницы)

● Cache-Control: public, max-age=180

Page 12: Varnish and Drupal

Настройка DrupalНастройка Drupal

● Открыть страницу "Производительность"● Выбрать "External", потому что мы

используем Varnish. ● Друпал не будет использовать внутренний кеш и

не будет некоторых заголовков в HTTP ответе.

● Page cache maximum age: 10 min● Logout

Page 13: Varnish and Drupal

ПроверкаПроверка

● Несколько раз перезагрузить страницу● Открыть Firebug (chrome://net-internals)● Посмотреть заголовки (время жизни кеша

(Cache-Control) и отсутствие друпал-параметра.

● Cache-Control: public, max-age=600

Page 14: Varnish and Drupal

Передача 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;● }

Page 15: Varnish and Drupal

Передача 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

Page 16: Varnish and Drupal

Передача 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"

Page 17: Varnish and Drupal

Передача 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.

Page 18: Varnish and Drupal

ПроверкаПроверка

● Проверить правильность настройки можно в логах друпала - там указывается IP с которого был сделан запрос. Тип: 'user'

● Нужно перелогиниться и проверить снова.

Page 19: Varnish and Drupal
Page 20: Varnish and Drupal

varnishstatvarnishstat

● http://kly.no/posts/2009_12_08__Varnishstat_for_dummies__.html

Page 21: Varnish and Drupal

Почитать: VarnishПочитать: Varnish

● https://www.varnish-cache.org/● Varnish Book

https://www.varnish-software.com/static/book/● http://pressflow.org/● http://drupal.org/project/varnish●

Page 22: Varnish and Drupal

Почитать: УстановкаПочитать: Установка

● 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

Page 23: Varnish and Drupal

Почитать: МониторингПочитать: Мониторинг

● 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/

Page 24: Varnish and Drupal

Почитать: ОптимизацияПочитать: Оптимизация

● 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/

Page 25: Varnish and Drupal

Почитать: Ошибки VarinshПочитать: Ошибки Varinsh

● http://serverfault.com/questions/146605/understanding-this-error-apr-socket-recv-connection-reset-by-peer-104

Page 26: Varnish and Drupal

Questions to speakerQuestions to speaker

Vlad Savitsky

http://shvetsgroup.com

Skype: vlad_savitsky

[email protected]

+38 096 530 27 12