Поиск по сайту:

Как установить WordPress, Nginx, PHP и Varnish на Ubuntu 12.04


Статус: устарело

В этой статье рассматривается версия Ubuntu, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением Ubuntu 12.04, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию Ubuntu:

  • Обновите Ubuntu до версии 14.04.
  • Обновление Ubuntu 14.04 до Ubuntu 16.04
  • Перенесите данные сервера в поддерживаемую версию.

Причина:

См. вместо этого:

О лаке

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

Настраивать

Прежде чем приступить к работе с этим учебным пособием, выполните несколько предварительных условий. Вам понадобится пользователь с привилегиями root, стек LEMP и Wordpress, уже установленный на вашем сервере.

Вы можете просмотреть несколько предыдущих руководств, чтобы убедиться, что ваш сервер работает быстро:

  1. Чтобы создать пользователя с правами sudo, выполните третий и четвертый этапы начальной настройки сервера Ubuntu

  2. Чтобы установить стек LEMP (linux, nginx, mysql и php), выполните действия, описанные в руководстве по установке LEMP.
    Чтобы установить WordPress на свой сервер, ознакомьтесь с инструкциями в Учебнике по установке Wordpress

Шаг первый — установите Varnish

После того, как у вас есть все предварительные условия, необходимые для настройки Varnish с помощью WordPress, вы должны начать процесс установки Varnish.

Сайт лака рекомендует установить пакет лака через их репозиторий.

Вы можете начать этот процесс, захватив репозиторий:

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

Следующим шагом будет добавление репозитория в список подходящих источников. Идите вперед и откройте файл.

sudo nano /etc/apt/sources.list

Оказавшись внутри файла, добавьте репозиторий лака в список источников.

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

Сохранить и выйти.

Наконец, обновите apt-get и установите лак.

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

Шаг второй — настройте Varnish

После того, как вы установили и nginx, и лак, вы можете приступить к их настройке, чтобы снизить нагрузку на ваш виртуальный частный сервер.

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

Идите вперед и начните настройку, открыв файл /etc/default/varnish:

sudo nano /etc/default/varnish

Найдите строки под \DAEMON_OPTS— в разделе Альтернатива 2 и измените номер порта на \-a\ на 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

Этот файл сообщает лаку, где искать содержимое веб-сервера. Он уже должен быть настроен так, чтобы серверная часть (например, nginx) прослушивала порт 8080.

Нам нужно использовать этот файл для второстепенной цели. Wordpress переполнен различными файлами cookie, которые очень усложняют его кеширование. Чтобы лак работал максимально эффективно, нам нужно сказать ему удалить все файлы cookie, которые не относятся к административной части сайта Wordpress.

Кроме того, нам нужно сообщить лаку, чтобы он удалил файлы cookie, из-за которых worpdress очень сложно кэшировать.

Начало файла 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;
        }
}

[...]

Шаг третий — настройте Nginx

Хотя мы уже настроили лак, чтобы ожидать, что порты 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
        [...]

Нам нужно сделать одну последнюю вещь, прежде чем запустить лак на нашем сайте, а именно удалить виртуальный хост, включенный по умолчанию.

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

Шаблон останется в каталоге, доступном для сайтов, если он понадобится вам еще раз.

Шаг пятый — перезагрузка

После внесения всех необходимых изменений перезапустите лак и nginx.

sudo service nginx restart
sudo service varnish restart

Доступ к вашему домену должен мгновенно привести вас к кешированной версии лака, и вы можете увидеть подробности работы лака на вашем VPS с помощью этой команды:

varnishstat