Установка WordPress, Nginx, PHP и Varnish на Ubuntu 12.04

Published by Leave your thoughts

Что такое Varnish?

Varnish — это HTTP-ускоритель сервера, особенно полезный для сайтов с высоким трафиком. Он работает путем перенаправления посетителей на статические страницы, и использует сервер только если есть необходимость в активном процессе.

 Требования

Прежде чем приступить к выполнению данного руководства, нужно выполнить некоторые предварительные требования. На сервере должны быть установлены пользователь с привилегиями root, а также LEMP stack и WordPress.

Чтобы получить советы и инструкции, читайте следующие руководства:

1: Установка Varnish

Выполнив все предварительные требования, приступайте к установке Varnish. Сайт Varnish рекомендует устанавливать пакеты Varnish из репозитория проекта.

Итак, для начала скачайте репозиторий:

sudo curl http://repo.varnish-cache.org/debian/GPG-key.txt | sudo apt-key add -

Далее нужно внести репозиторий в список исходников apt. Откройте файл:

sudo nano /etc/apt/sources.list

Внесите репозиторий varnish в список исходников:

deb http://repo.varnish-cache.org/ubuntu/ lucid varnish-3.0

Сохраните изменения и закройте файл.

В завершение обновите apt-get и установите varnish:

sudo apt-get update
sudo apt-get install varnish libvarnish-dev

2: Настройка Varnish

Когда на сервере установлены nginx и varnish, их нужно настроить, чтобы снизить нагрузку на виртуальный сервер.

Varnish будет обслуживать контент на порту 80, отделяя его от Nginx, который будет работать на порту 8080.

Итак, откройте файл /etc/default/varnish:

sudo nano /etc/default/varnish

Найдите строки под DAEMON_OPTS (раздел Alternative 2) и с помощью флага -а измените номер порта на 80. Должно получиться так:

DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"

Это единственное изменение, которое нужно внести в этот файл. Сохраните и закройте его, а затем откройте файл default.vcl:

sudo nano /etc/varnish/default.vcl

Этот файл сообщает varnish о местонахождении контента сайта. Он уже должен указывать на бэкэнд (т.е. nginx) прослушивающий на порту 8080.

WordPress полон различных куки-файлов, которые значительно усложняют кэширование. Чтобы Varnish работал более эффективно, нужно сказать ему удалить все куки, которые не относятся к административной части сайта WordPress.

Кроме того, Varnish должен удалить все куки, которые усложняют кэширование WordPress.

Начало файла default.vcl должно выглядеть так:

[...]
backend default {
.host = "127.0.0.1";
.port = "8080";
}
# Drop any cookies sent to WordPress.
sub vcl_recv {
if (!(req.url ~ "wp-(login|admin)")) {
unset req.http.cookie;
}
}
# Drop any cookies WordPress tries to send back to the client.
sub vcl_fetch {
if (!(req.url ~ "wp-(login|admin)")) {
unset beresp.http.set-cookie;
}
}
[...]

3: Настройка Nginx

Хотя в настройках Varnish уже указано, что Nginx работает на порту 8080, настройки Nginx по умолчанию все еще содержат порт 80. Это нужно исправить.

Откройте файл виртуального хоста, содержащий информацию WordPress. В предыдущем руководстве о WordPress он был назван wordpress:

sudo nano /etc/nginx/sites-available/wordpress

Виртуальный хост нужно также установить на порт 8080; кроме того, он должен быть доступным только с локального хоста. Отредактированная строка имеет такой вид:

[...]
server {
listen  127.0.0.1:8080; ## listen for ipv4; this line is default and implied
[...]

Последнее, что нужно сделать перед запуском varnish, — удалить файл виртуального хоста default:

sudo rm /etc/nginx/sites-enabled/default

При необходимости шаблон можно найти в каталоге sites-available.

4: Перезапуск Varnish и Nginx

Выполнив все вышеописанные действия, перезапустите Varnish и Nginx:

sudo service nginx restart
sudo service varnish restart

Перейдя на свой домен, можно увидеть кэшированную версию Varnish; чтобы просмотреть результаты работы Varnish на данном сервере, используйте команду:

varnishstat

Tags: , , , , , , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>