Настройка хостинга на VDS под Ubuntu. Настройка сервера с нуля на примере VPS от Hetzner’а Какой тарифный план выбрать

Настройка хостинга на VDS под Ubuntu. Настройка сервера с нуля на примере VPS от Hetzner’а Какой тарифный план выбрать

Обновляшечки! Данный набор шпор для разворота хостинга обновлен 28.03.2015, теперь по ним можно развернуть относительно свежий хостинг под Ubuntu 14.04LTS.

Вчера заметил, что Hetzner недавно «обновил тарифы» и выкатил конфигурацию VX18 всего за 18€ c VAT (для нерезидентов по 15.8€). По характеристикам — всего в 2 раза больше, чем на моем старом тарифе VQ19, по качеству ничего не ясно, предполагаю что такое же десктопное железо. Саппорт не сознается, говорит «просто новые тарифы, надо же нам что-то предлагать». Решил вот попробовать. Прогнал unixbench на старом сервере и новом , остался пока доволен и начал перенос сайтов. За одно решил поправить эти шпаргалки для настройки хостинга. (кстати, со временем показатели сервера ухудшатся при «заселении» сервера или смены ноды на более вялую, как было у меня с VQ19, для сравнения — удивительно бодрее чем VQ19).

Задача
Развернуть под Ubuntu 14.04 LTS легкий виртуальный вебхостинг для работы в nginx , PHP-5.5 , MySQL , а так же поднять почтовый сервер Dovecot2/Postfix и настроить почту. Apache я разворачивать не буду, ибо не вижу в нем смысла - под мои нужды nginx подходит ничуть не хуже, а оперативную память расходует значительно меньше. Неймсервер использоваться будет хетзнеровский, как более стабильный.

Формат изложения
Ниже вы можете увидеть список действий, которые будут озвучены в последующих постах. Когда этот момент случается — данная страница будет обновлена и итем станет ссылкой 🙂

  • Установка средств мониторинга сервера Munin.
  • Резервное копирование данных.
  • Скрипты упрощающие добавление нового сайта.

Внимание! Я не являюсь матерым админом и все излагаемое может быть оспорено профессионалами в любом виде. Рад всяческим поправкам, комментариям и советам.

Покупка хостинга в hetzner.de

В этом деле я вам особо не помощник, т.к. справится с этой задачей любой. Заходим сюда , выбираем понравившийся тариф, жмем «Order now». Будете средирекчены на https://robot.your-server.de/order . Далее выбираете заново свой продукт — у меня это был «vServer VX18» и жмете «Order product». На следующей странице выбираете Ubuntu 14.04 LTS 64bit minimal , архитектура 64бит , число серверов 1. Все мои изложения далее идут для Ubuntu 14.04 LTS 64bit. Далее жмем «Add to shopping cart». На следующей странице проверяем то ли мы заказали и жмем «Checkout». Далее если имеем аккаунт в роботе — логинимся, если не имеем — заполняем все поля и регистрируемся. Заполнять надо на английском языке (Ф.И.О. транслитом). Необходимо, чтобы ваше Ф.И.О. совпало с транслитом на вашей кредитной карте, которой вы будете платить. После жмете «Create new account». Где-то дальше вас спросят про кредитку … Вообщем все как в обычном интернет-магазине.

Какой тарифный план выбрать?

Сейчас я пользуюсь тарифом VX18 за 18€ (vServer VX18), т.к. потребности постепенно растут, но до реального сервера пока не дотягивают. Данный тариф позволяет довольно бодро тянуть десяток-другой не сильно нагруженых сайтов. Если вы хотите пока попробовать что-то попроще — можно для начала взять тариф VX6, но на нем совсем мало памяти, архитектуру надо будет брать 32bit. Так же не стоит забывать, что у hetzner нельзя на лету сменить тариф — надо покупать еще один сервер и переносить все на него.

Как быть с nameserver?

А очень просто. Свой поднимать накладно, надо 2 IP, нагрузка на сервер всякими ботами нам тоже не нужна, поэтому воспользуемся неймсерверами самого hetzner. Правда услуга эта платная, стоит 0.5€ в год за 1 домен. Эту услугу лучше подключить сразу, как только вам поставят сервер (об этом вы будете уведомлены по EMail), т.к. подключается она не быстрее сервера (т.е. ручками через операторов). Как я уже описывал.

Подготовка окружения сервера.

Ну вот нам уже и сервер включили, SSH дали — можем пользоваться. Первым делом обновим установленный софт:

Sudo apt-get update sudo apt-get upgrade

Если появились ошибки в стиле blah blah blah …Hash Sum mismatch , выполняем следующее:

Sudo rm /var/lib/apt/lists/* sudo apt-get update sudo apt-get upgrade

Поставим Midnight Comander (что-то типа FAR), для запуска mc.

Sudo apt-get install mc


Теперь пропишем имя хоста (все ниже описанные действия я буду проводить для сайта koteika.ru , вы же можете заменять на свой домен, ну или придумать имя хоста себе по вкусу.)

Sudo echo "koteika" > /etc/hostname sudo hostname -F /etc/hostname

Пропишем fqdn (нужен для почты), правим /etc/hosts , чтобы получилось примерно так:

### Hetzner Online AG installimage # nameserver config # IPv4 127.0.0.1 localhost.localdomain localhost 78.47.88.87 koteika.koteika.ru koteika # # IPv6::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts 2a01:4f8:d16:4346::2 koteika.koteika.ru koteika

Вся прелесть в строках 78.47.88.87 koteika.ru koteika и 2a01:4f8:d16:4346::2 koteika.koteika.ru koteika , где первое значение - IP вашего сервера, второе - доменное имя сервера в формате (FQDN) и третье - имя хоста.

Если все правильно сделали, то посмотреть результаты можно так:

Hostname hostname -f

P.S. Файлы лучше редактировать в чем-то простом типа , но простые изменения можно делать и в mc. В дальнейшем нам придется править очень много конфигов, т.ч. vi лучше освоить.

Если вам понравилась моя статья, пожалуйста, не поленитесь кликнуть любую кнопочку ниже, или кинуть ссылку на статью в свой блог или форум. Всегда рад ответить на ваши вопросы в комментариях. Спасибо 🙂

[Статья актуальна! Последняя дата изменения 12.03.2015! ]

И так, давайте начнём, для начала что же такое VPS/VDS? По идеи это одно и тоже, VPS это Virtual Private Server или же Виртуальный Приватный Сервер, VDS это Virtual Dedicated Server или же Виртуальный Выделенный Сервер.

1. Как подобрать качественный VPS/VDS ? Этот вопрос мучает всех. Отвечу я вам так: лучше брать на иностранных сайтах, конечно я не буду перечислять какие, но на них дешевле и качественнее.
Вы встретили какие то: OpenVZ и KVM? KVM будет стоить дороже но он лучше OpenVZ, плюсы я подробной расписывать не буду, а лишь напишу только одно. Допустим есть выделенный сервер, его разделили на 4 части, одну часть дали вам, и другим по одной. Но! Якобы каждому на сервер выделяется порядка 5 гб оперативы, а на сервере всего 16. Т.е фактически можно выделить каждому только по 4 гб. И когда у вас занято 3 гб, а у других 5 - то вы не сможете занять 4 гб памяти, а только лишь 3. На KVM же, такого не будет. То, что вы купили - то и выдадут.

2. Подготовка VPS/VDS для установки сервера Перед установкой сервера MineCraft вам необходимо установить ОС Linux, лучше всего работать с Debian/Ubuntu, но я предпочту Debian 7.3(при заказе сервера, у вас может быть и Debian 7.0 и 6.0 - в них почти нет отличий!) Затем нужно скачать любой SSH клиент, самый простой и удобный PuTTy , затем, нужно открыть этот клиент, и мы видим перед нами строка: "Host name (or IP address) ((Имя хоста (или Ip-адрес))" и туда вводим IP адрес своего VPS/VDS сервера, где надпись "Port (порт)" там ничего не трогаем, нужен порт 22, а именно SFTP(SSH File Transport Protocol) а не FTP(File Transport Protocol) и нажимаем внизу "Open (Соединиться)". При желании вы можете сохранить эти данные, введя в "Saved Sessions" название сессии,

Теперь нужно подтвердить ключ, нажимаем "да". После этого нам предлагают ввести логин: login as: тут мы пишем(по стандартному, (супер-пользователь)) root Далее, нам пишет: root@IPкоторый_указали"s password: тут мы пишем пароль, когда вы пишете пароль, он не показывается!!! А так же можно вставить пароль, зажав ПКМ, но не CTRL + V (CMD + V)
Затем появляется консоль, в консоли мы прописываем:

apt-get update //Обновляем все установленное на сервере пакеты
При обновлениях, вам предлагают продолжить установку, или отменить: N or Y, пишите "y" и жмите Enter, т.е продолжаете.
apt-get upgrade //Теперь мы "улучшаем" пакеты
Опять же пишите "y" и Enter.
ВНИМАНИЕ! Начиная с версии Debian 7.3 нам предлагают подтвердить SSL сертификаты, когда нам об этом напишут, просто жмите Enter много раз, или просто зажмите. Когда список закончится и нам предлагают выйти, просто нажимаем "q"
apt-get install htop //Пакет для показа активных программ, очень полезен, если нужно посмотреть, допустим что из приложений java активны, а не просто прописывать "kill java"
apt-get install screen //Пакет который создает "несколько" консолей, если нужно запустить сразу 2+ серверов. И вообще полезная штука
apt-get install openjdk-7-jre //устанавливаем Java. Советую установить именно open-jdk.
(Уже можно установить 8)

Доп. пакет
apt-get install nano //Хороший редактор для Linux"a, если не хотите заходить в FTP клиент и через консоль что-то отредактировать - используйте Nano. Для использования пишем: nano путь к файлу (К примеру: nano /root/srv/minecraft/server.proporties)

Теперь сервер готов к работе!
Теперь нужно закинуть файлы на сервер, через любой FTP клиент, предлагаю - FileZilla
Когда мы открыли FileZilla, в левом верхнем углу, есть кнопочка "Открыть менеджер сайтов" нажимаете туда, и вводите в хост ip адрес сервера; порт устанавливаете 22(Или выбираем SFTP); пользователь root; и ваш пароль от VPS/VDS/DS. Нас автоматически перекинет в папку "root", в папку "root" перекиньте папку с вашим сервером. Теперь нам нужно как-то запустить наш сервер. Для этого создадим скрипт запуска, создадим файл start.sh (Можно любой другой, но именно.sh!) Теперь мы копируем туда вот это:

Java -Xmx2048M -Xms512M -jar ядросервера.jar

Xmx - максимальное кол-во оперативной памяти выделяемое для сервера.
Xms - минимальное кол-во оперативной памяти выделяемое для сервера.

Плюсы VDS/VPS/DS в том, что можно ввести абсолютно любой порт для сервера, если он не занят.

3. Запуск сервера
screen
//Создаем "консоль"
Можно так же использовать screen -S (именно -S а не -s), чтобы задать имя сесси, допустим:
screen -S server
cd /root/ваша_папка_с_сервером/
//переходим в папку где лежит сервер
sh start.sh //запускаем сервер
И у нас появляется консоль как у обычного сервера MineCraft

Вы можете просто закрыть консоль PuTTY и всё будет работать, можете попробовать так сделать (чтобы вернуться к консоли сервера майна, нужно войти в патти, и написать: Screen -r )

Если же у вас запущено 2 и более серверов одновременно - чтобы зайти в консоль вам нужно:
1. Узнать какие сессии у screen"ов, пишем:
screen -ls // узнаём сесси
Теперь появились сессии, допустим:
hub
survival
И теперь вводим:
screen -r сессия //заходим в сессию
И мы в консоли какого-либо сервера.

На этом туториал окончен.

Настраивать cs сервер на vds, как и любой другой, следует привычным способом, как это делают все администраторы, работая с физическими серверами – разницы, принципиальной, нет никакой. Единственное, что обязательно советуют сразу после установки проделать, это добавить новоиспеченный сервер в мониторинг. Для этого нужно всего лишь в ISPmanager перейти в «Инструментах» на вкладку «Сервисы», где следует добавить новый сервис с названием «SAMP», именем процесса «samp02xsvr», запускающей командой «cd/hоme/имя пользователя/dаta/servеr/ ; ./sаmp02Xsvr &». Режим работы отмечается как «самостоятельный», а тип сервиса, как – «неизвестный». Также стоит проставить галочки в пунктах «Мониторинг» и «Автозагрузка».

Как настраивается сервер VDS?

В определенный момент развития бизнеса или любого другого интернет-проекта, его владельцы становятся перед фактом, что традиционный хостинг с поставленными задачами уже не справляется – необходим виртуальный сервер vds. Подобный частный виртуальный сервер дает возможность получать требуемые ресурсы вне зависимости от загруженности сервера клиентами, работать стабильно и реализовывать весь необходимый функционал.

Начало работы с VDS-сервером

Безусловно, получить собственный vds windows сервер можно исключительно после оформления соответствующих отношений с хостером, выбора тарифа и пакета услуг, а также их оплаты, если начинается сотрудничество не с тестировочного режима. Фактически придется vds сервер купить, скачать для него все необходимые клиенты и системы, после чего нужно его установить и заняться его качественной настройкой. Разумеется, для осуществления всего этого комплекса мероприятий арендатору необходимо иметь в штате соответствующей квалификации администратора и веб мастера, либо же (а существует и такая возможность) заказать услуги у самого хостера или работающей в этой области другой ИТ-компании, которые могут без вашего непосредственного участия произвести такие мероприятия, как установка и настройка vds сервера.

Понятие настройки VDS-серверов

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

  • систем управления проектами;
  • серверов баз данных;
  • приложений, сформированных на основе общепринятых ЯП (perl, php, ruby, python);
  • почтового сервера;
  • системы контроля версий;
  • оповещений о сбоях;
  • интерапторов скриптовых языков;
  • web-сервера;
  • системы резервного копирования.

Исходные данные для настройки

После того, как вам удалось vds сервер купить, от хостера вы получаете IP-адрес своего сервера, логины и пароли администрирования для панели, а также для самого VDS, адрес, по которому панель управления может быть найдена. Пользователи в зависимости от выбранной ОС получают права администратора или root-а, в результате чего полную настройку могут осуществлять переходом по иконке «На сервер».

Настройка vds windows сервер

При необходимости подтверждается процедура лицензирования и сертификации безопасности, указывается часовой пояс и доменное имя, выбираются необходимые для работы с журналом настройки, а также указывается пользовательский пароль. Для привязки домена к серверу следует создать новое имя на панели управления, после чего получается доступ к настройкам для домена. Далее же прогулка по меню раздела «Настройки» в панели управления позволит вам полностью подстроить VDS-сервер под свои нужды.

Вы, наверное, заметили, что последнее время стало популярно переносить сервера компании в виртуальную среду и в данном видео предлагаю рассмотреть такой вариант виртуализации как VPS и VDS виртуальный сервер.

На самом деле, VDS (Virtual Dedicated Server) и VPS (Virtual Private Server) это одно и тоже понятие и обозначает виртуальный выделенный сервер.

Принцип создания виртуального сервера следующий.

На физическом сервере запускается операционная система, помогающая создавать эти самые виртуальные сервера, которая называется гипервизор. Он позволяет полностью изолировать виртуальные сервера друг от друга. Таким образом, работа одного VPS не может повлиять на работу других серверов, они не могут получить доступ к файлам или сетевым пакетам и содержимому оперативной памяти друг друга. В результате, на одной физической машине можно создать любое количество виртуальных серверов, насколько это позволяет оборудование. Каждый такой сервер будет иметь собственную операционную систему и настройки. Таким образом, будет складываться впечатление, что вы работаете на физическом сервере, но подключаетесь к нему удаленно.

Данную систему виртуализации вы можете реализовать либо на своем физическом сервере, либо используя облачный сервис.

Достоинства перехода в облако:

Оптимизация расходов. Не надо тратить деньги на покупку и размещение дорогого оборудования. Так как аренда VPS позволяет избежать крупных единовременных затрат.

Экономия на ресурсах. Согласно статистике, ресурсы собственного оборудования редко используется более чем на 50%. В тоже время, виртуальный сервер можно создавать точно с теми параметрами, которые необходимы именно сегодня. Можно настраивать количество ядер, емкость диска и оперативной памяти, так, чтобы не платить за избыточную конфигурацию.

Оперативная организация работы. На то чтобы купить и установить свой сервер вы потратите от недели до месяца. Выбор оборудования, оплата, доставка, подключение, настройка - на это все уходит много времени. При создании виртуального сервера вам достаточно 5 минут и VPS, с нужной конфигурацией, уже готов к работе.

Простое масштабирование ресурсов – можно увеличить или уменьшить параметры VPS буквально за пару минут. Вы платите только за те ресурсы, который нужны здесь и сейчас.

Надежное хранение информации. Так как данные хранятся в зеркальном Raid массиве, то информация дублируется на двух независимых носителях и при выходе из строя одного из них, ваши данные не пропадут.

ROOT доступ. Вам предоставляются полные администратора для управления вашим VPS. Вы можете устанавливать любое программное обеспечение, операционные системы и менять любые настройки.

Недостатки:

Необходимость в постоянном стабильном интернет соединении, так как при отключении сети интернет, вся работа будет парализована.

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

В рамках данного видео мы как раз будем создавать виртуальный сервер через облачный сервис

Как вы видите, на главной странице сервиса сразу же предоставляется возможность указать нужные Вам характеристики сервера, через конфигуратор. Благодаря этому, вы сразу можете увидеть, сколько будет стоить аренда этого сервера в месяц или в сутки.

Можно так же протестировать работу виртуального сервера бесплатно, для этого достаточно оставить заявку на подключение тестового виртуального сервера. Как вы видите, срок теста довольно короткий, для физических лиц 1 день, для юридических 3 дня. Однако разработчики пошли мне на встречу и готовы для моих подписчиков предоставить 5 дней бесплатного тестирования. Для этого вам достаточно сообщить менеджеру, который вам перезвонит после отправки заявки, что вы являетесь подписчиком «Центра Обучения IT»

Ну, а теперь давайте посмотрим, как все это работает.

Входим на сайт под своими регистрационными данными. В верхней части сайта можно увидеть, сколько денег у вас на счете. Если вы работаете в тестовом режиме, то вам будет предоставлен сервер с определенными настройками, я же буду рассматривать не тестовый, а работу сервиса в полноценном режиме.

Конфигурация виртуального выделенного сервера VPS (VDS).

В личном кабинете переходим в раздел Виртуальные серверы \ Создать новый \ Имя сервера \ Сервер FTP.

Шаблоны – меня интересует Windows Server 2016 R2. Далее мы выбираем нужную конфигурацию железа, стоит заметить, что для различных конфигураций стоимость аренды будет меняться, так что выберите для себя оптимальный вариант с учетом производительности и стоимости аренды.

Число ядер, объем ОЗУ, пространство на HDD и оборудование, с этим все понятно.

Общий (не гарантированный) 100 Мб\с – здесь предоставляется максимальная скорость интернет канала 100 Мб\с, но она будет распределяться между несколькими серверами, поэтому, если интернет канал будет загружен, то не гарантированно что вы получите скорость 100Мб\с.

Выделенный 10, 50, 100 Мб\с гарантирует, что вы будете получать эту скорость интернет соединения, так как для вас будет создан выделенный интернет канал.

Резервное копирование – ежедневное резервное копирование данных сервера

Дополнительный IP – если вы хотите подключить дополнительную сетевую карту с внешним IP адресом.

Частная локальная сеть – позволяет организовать сеть между серверами без выхода в Интернет, по внутренним IP адресам. При этом трафик полностью изолирован от других пользователей.

Расширенный SLA – Расширенная гарантия. NeoServer не только обещает доступность виртуального сервера 99,99%, но и оплачивает простой в 10 кратном размере.

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

Далее жмем кнопку «Покупка». Не смотря на то, что у меня меньше денег на счете, чем стоимость собранного мною сервера, я все равно могу его купить, так как эта стоимость за месяц. В процессе работы с виртуальным сервером, стоимость его аренды будет сниматься не раз в месяц, а каждый день, т.е общая стоимость сервера деленное на 30, это и будет цена аренды за каждый день использования. А так как у меня достаточно средств, чтобы оплатить один день аренды сервера, то я могу его купить J

Пошел процесс создания виртуального выделенного сервера.

После создания VPS у нас появляются параметры подключения к серверу, через веб-консоль или через RDP удаленный рабочий стол.

Следует отметить, что наличие web консоли – это очень важный фактор при выборе VPS. Она позволит вам подключиться к серверу через личный кабинет, даже если ОС зависла или если из-за неверных сетевых настроек VPS стал не доступен.

Так же есть функция снимка состояния («Snapshot»). Снимок состояния рекомендуется создавать, перед тем, как вносить какие-то значительные изменения на сервере. Чтобы в случае негативных последствий, можно было вернуться к моменту создания снимка.

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

Меня не очень устраивает подтормаживание сервера, поэтому я добавлю еще один гигобайт оперативной памяти, чтобы более комфортно продемонстрировать практическую часть настройки сервера (Выключаем VPS сервер \ Оперативная память 2 Гб \ Сохранить \ Включить VPS).

Теперь давайте настроим наш сервер в роли FTP сервера, чтобы увидеть, как можно использовать виртуальный сервер в реальной ситуации.

Я не буду вдаваться в подробности самой технологии FTP, так как планирую на эту тему сделать отдельное видео, поэтому все буду настраивать максимально быстро (Диспетчер серверов \ Управление \ Добавить роли и компоненты \ Далее \ Установка ролей и компонентов \ Выбираем наш сервер \ Далее \ Веб-сервер IIS \ Далее \ Далее \ FTP-сервер \ Далее \ Установить \ Закрыть ).

Создадим пользователя, для доступа к FTP серверу (Средства \ Управление компьютером \ Локальные пользователи \ Пользователи \ ПКМ \ Новый пользователь \ User12345 )

Создадим папку для FTP доступа (C:\inetpub\ftproot\TestFTP)

Настраиваем доступ к FTP (Диспетчер сервера \ Средства \ Диспетчер служб IIS \ Сайты \ Добавить FTP сайт \ Имя \ Путь \ Без SSL \ Далее \ Проверка подлинности \ Обычная \ Указанные пользователи \ User12345 \ Чтение \ Готово )

Подключаемся (Проводник \ ftp://адрес сервера \ Вводим логин и пароль )

Твитнуть

Предыстория

Лучший способ развиваться - делиться накопленным опытом.

Раньше для запуска сайтов мне было достаточно shared-хостинга. Это разумная экономия, если посещаемость сайтов небольшая. Так продолжалось до 2014 года, когда в руки попал довольно посещаемый ресурс, запущенный на VPS и при этом сильно тормозящий. Шутка ли - страницы могли генерироваться по 10 секунд! На домашней Убунте я не раз ставил стек программ LAMP командой sudo apt-get install lamp-server^ , раскидывая сайты по разным папкам и составляя несложные конфиги, поэтому первым делом перенёс сайт на своё «железо». На домашнем ПК он заработал довольно шустро, поэтому решил, что на сервере нужно просто переустановить софт с нуля. Глубокой ночью, когда посетителей было мало, поставил Ubuntu 12.04.4 (тогда была самой актуальной версией), Apache+PHP+MySQL+phpmyadmin+proftpd и запустил сайт. Увы - генерация страниц как длилась по 5-10 секунд, так и продолжила отнимать драгоценное время.

Стал копать дальше и убедился, что дело было в самописных компонентах CMS (это была Joomla, кстати). Переписывать тормозящий программный код CMS, с которым я не знаком, не лучшее решение, когда работу нужно выполнить в сжатые сроки. Поэтому прикрутил компонентам кэширование и аллилуйя - тормоза исчезли! Страницы стали загружаться за 0,7-0,9 секунд, это более чем пятикратный прирост производительности.

Я дам прямой ответ на вопрос: как же сделать так, чтобы запущенный на дешёвом, медленном сервере сайт работал быстро.

Выбор VPS

Если у вас нет виртуального сервера, почитайте о том, В статье я рассказал о минимальных системных требованиях к виртуальному серверу и как выбрать подходящий.

Выбор ОС для сервера (Ubuntu Server 16.04)

Обычно хостинг даёт возможность выбрать операционную систему для вашего сервера. Большинство предлагаемых - различные дистрибутивы Linux: Debian, Ubuntu, Arch Linux, CentOS, OpenSUSE, Fedora, Gentoo и другие.

На персональном компьютере можете ставить что угодно, но на серверах важна стабильность. На мой взгляд, Ubuntu 16.04 - разумный компромисс между новыми версиями софта и стабильностью. Инструкции для Debian подходят и для Убунты, а значит - начинающим пользователям будет раздолье в плане повышения навыков и поиска ответа на вопросы. Потом при желании можно переключиться на CentOS или вообще FreeBSD, но для начала, чтобы избежать головной боли при настройке, лучше Убунты ничего не придумали.

Моё субъективное мнение о популярных дистрибутивах:

  • CentOS (любая версия): новичкам будет тяжело, ибо инструкций не очень много. В репозиториях доступны довольно свежие версии софта.
  • Debian (любая версия): оперативной памяти занимает немного, что помогает быстрее работать сайту с высокой посещаемостью за счёт выделения памяти кэшу и PHP с MySQL (после тонкой настройки, конечно), но в репозитории доступны старые, проверенные версии PHP, из-за чего скорость работы сайтов будет не так высока, как могла бы быть. Инструкций много, начинающие пользователи разберутся, но настройка требует времени.
  • Ubuntu Server 16.04: серверная версия популярного дистрибутива Linux. Версия 16.04 будет поддерживаться до апреля 2021 г. - это значит, что после настройки вы четыре года сможете просто обновлять софт. Обновления важны, потому что в новых версиях исправляются найденные уязвимости и устраняются ошибки. Версии программ в репозитории Ubuntu 16.04 относительно свежие. Например, на момент написания статьи доступна PHP 7.0, дающая 30% прирост производительности по сравнению с PHP 5.6, идущей по умолчанию в Debian 8.
  • Ubuntu Server 16.10, 17.04, 17.10: версия 16.10 уже вышла, но обновления безопасности прекратят приходить в июле 2017 года, придётся обновлять всю систему целиком до 17.04. На момент написания статьи 17.04 готовится к выходу, а 17.10 пока только в планах, их тоже ставить нет смысла: это не LTS-релизы, а значит, они тоже быстро превратятся в тыкву.

У любителей настраивать всё ручками можно знатно пригореть от того, что я предлагаю Ubuntu Server 16.04 в качестве основы для веб-сервера, ведь есть CentOS/FreeBSD/Что-то_ещё_OS. Выбор в мире свободного софта - всегда конфликт и холивары. Моя позиция такова: Ubuntu - хороший старт, начните с неё, а дальше у каждого свой путь.

Как подключиться к VPS

Вам нужно понимать, что такое консоль и какие команды бывают. Дело в том, что каждый хостинг стремится сделать собственную сборку ВПС-ки. Например, устанавливает Apache, MySQL, правит конфиги. Поэтому нужно уметь смотреть логи и понимать, что происходит.

Итак, ОС выбрали, сервер заказали, в админке хостинга появился IP-адрес сервера, имя пользователя и пароль для доступа по SSH. Как подключиться к ВПСке?

Управление сервером осуществляется через терминал (консоль) путём ввода команд. Обычно к консоли подключаются по протоколу SSH с помощью соответствующих программ. Я рекомендую использовать Putty как самую распространённую: ссылка на самую новую версию. Версия с MSI-инсталлятором (первая ссылка в списке) - наиболее полный комплект. Или можете использовать форк (модификацию) Putty под названием KiTTY, где добавлено много полезного по сравнению с оригинальной программой.

После установки панели управления VestaCP сервером можно управлять и через браузер, обращаясь к консоли только для обновления программ.

Инструкция подходит к Ubuntu 16.04 и 16.10. Пожалуйста, не спрашивайте меня об установке софта на CentOS и другие дистрибутивы - это тема отдельной статьи.

Вход на сервер через Putty

Для входа нужна только первая вкладка в стартовом окне Putty:

1 - сюда введите IP-адрес вашего сервера;

2 - порт, по умолчанию 22;

3 - введите любое название;

4 - сохранение настроек под именем из третьего пункта;

5 - в дальнейшем просто запустите двойным щелчком по пункту в этом списке. Для редактирования настроек именно этого пункта есть кнопки Load и Save .

После нажатия Open (или двойного щелчка по сохранённому пункту в списке), если правильно ввели адрес и порт, появится предупреждение:

Это значит, что Putty пока не знает цифровой отпечаток этого сервера и предлагает его запомнить. Смело жмите «Да». В будущем, если вдруг кто-то подменит ваш сервер поддельным, окно появится снова. Это удобно.

Появится консоль с предложением войти:

Нужно сначала ввести выданный хостером логин, нажать Enter, пароль и снова Enter:

Тут важный момент: если вам выдан пароль к пользователю root , нужно создать другого с меньшими правами. Под пользователем root можно нечаянно удалить любые системные файлы, а нам нужно, чтобы VPS прожил как можно дольше.

Чтобы добавить нового пользователя, введите команду:

adduser имяпользователя

Затем добавьте его в группу sudo, чтобы можно было тоже выполнять рутовые операции, но только с указанием команды sudo:

usermod -a -G sudo имяпользователя

После этого можно выйти из рута командой logout и зайти под новым пользователем. Его и используйте в дальнейшем.

Есть ещё один способ авторизации на сервере: по цифровому ключу. Генерируется файл-ключ, благодаря которому сервер узнает, что вы - это вы. Цифровой ключ просто нереально подобрать, поэтому доступ к серверу по протоколу SSH будет предельно надёжен. По умолчанию включать доступ по цифровому ключу любят зарубежные хостеры, у наших встречал пока только у одного. Если у вас простая связка логин/пароль, не переживайте и просто имейте в виду, что есть более защищённый способ, который можно включить в будущем. Как настроить, в Интернете инструкций полно, я не буду останавливаться на этом.

Обновление программ

Нужно запомнить команду обновления, которую вводить придётся часто:

sudo apt update && sudo apt upgrade

Точнее, это две команды, объединённые в одну, чтобы лишний раз не жать Enter:

  • apt update обновляет список программ, подгружая из их репозитория Ubuntu 16.04;
  • apt upgrade запускает обновление программ сервера, если есть устаревшие;
  • sudo означает, что программу apt нужно запустить от имени суперпользователя root.

Обычно софт обновляется самостоятельно. Вмешательство требуется только при несовпадении конфигурационных файлов, идущих в комплекте, с содержимым имеющихся на сервере. При этом даётся выбор: заменить, сравнить построчно или оставить имеющиеся файлы. На практике можно оставить конфигурацию без изменений.

Немного теории: как работает веб-сервер

Веб-сервер - это программа, которая разберёт запрос браузера посетителя и отдаст ему нужные файлы. Для работы полноценного сайта на WordPress одного веб-сервера мало - он может отдавать только статичные (заранее подготовленные) файлы, ещё нужны интерпретатор PHP и сервер баз данных. Любой сайт на WordPress - это набор скриптов на языке программирования PHP, которые запрашивают информацию у сервера баз данных, чтобы сформировать страницы с записями, комментариями пользователя, админкой и прочими полезными интерактивными штуками.

Общий принцип работы таков:

1. Браузер пользователя узнаёт у DNS-сервера провайдера IP-адрес сервера, на котором находится сайт.

2. Затем браузер обращается по IP-адресу к серверу, указывая заодно, какой именно сайт ему нужен.

3. Веб-сервер разбирает запрос, определяя - что отдать посетителю. Два варианта событий:

а) Если это просто фотография, документ или другой статичный файл, то веб-сервер загружает с диска этот файл и отдаёт посетителю.

б) Если запрос подразумевает обработку через php-скрипт, он выполняется, формируя html-код странички и этот готовый код передаётся веб-серверу, который, в свою очередь, передаёт его браузеру посетителя.

Вы можете подумать: «Зачем читать эту азбуку? Раз я купил VPS, то всё знаю!». Вам придётся немного потерпеть, потому что есть нюансы, про которые многие забывают. Даже профессионалы своего дела, судя по вопросам на таком серьёзном сайте, как toster.ru, иногда получают граблями по лбу.

Выбор веб-сервера: Apache против Nginx

По умолчанию на VPS не будет веб-сервера, интерпретатора PHP и сервера баз данных. Их нужно ставить самим.Рассмотрим два самых популярных веб-сервера - Apache и Nginx.

  • Apache - самый популярный выбор. Совместим со всеми CMS, в том числе WordPress. К сожалению, скорость работы оставляет желать лучшего. Работающий на Apache сайт при наплыве посетителей начнёт открываться медленно или вовсе выдаст ошибку 500, 502 или другую из серии 5**, если у сервера не хватит ресурсов. Плюс только один: совместимость. На нём работают любые сайты, любые CMS, любой софт, написанный на PHP.
  • Nginx - второй по популярности веб-сервер. Используется многими посещаемыми сайтами. Например, Яндексом, Mail.ru и Вконтакте. Сильная сторона nginx - он очень быстро отдаёт посетителю статичные файлы (.htm, .jpg, .png и другие). Благодаря этому и некоторым другим особенностям на аналогичном по производительности сервере Nginx выдерживает большее количество одновременных посетителей, а также позволяет загружать странички быстрее. Никакой магии, конечно, нет - если посетителей много и ресурсов сервера не хватает, 5**-е ошибки посыпятся тоже, но при бо льших нагрузках. О том, почему Nginx быстрее, есть

Всё познаётся в сравнении. Если бы не существование Nginx, можно было бы смело поставить Apache и при повышении посещаемости сайта просто переезжать на более быстрый сервер. Но я рассказываю о том, как сделать так, чтобы сайт работал быстро , так что пошлём Apache куда-нибудь подальше.

Я предлагаю использовать Nginx, потому что:

  1. Nginx быстро отдаёт статичные файлы. Я подчеркиваю - действительно быстро . Если у вас сайт с большим количеством фотографий, переход на Nginx будет заметен невооружённым глазом: изображения на страницах будут появляться быстро, словно вы подключились к более шустрому Интернету.
  2. Nginx может кэшировать результат работы PHP-скриптов и отдавать браузеру так же быстро, как статичные файлы. Это те самые грабли, на которые наступают некоторые админы, я в их числе. Nginx может работать в любой мыслимой конфигурации и если вдруг вам захотелось ускорить работу сайта, велик соблазн включить все виды кэширования. Но при длинной цепочке кэширования производительность, наборот, может упасть! Более того, посетителям нужен не замерший во времени сайт - комментарии, форумы, новостные ленты должны обновляться. Обновлять кэш постранично в WordPress довольно накладно. А если сбрасывать всё при каждом новом комментарии или записи в блоге, производительность сайта будет низкой, потому что часть ресурсов будет уходить на постоянное пересоздание кэша. Поэтому дальше я предложу гарантированный способ кэширования, однозначно ускоряющий сайт, всё остальное будете допиливать сами, если появится желание.
  3. Nginx отказоустойчив. Так как это ещё и прокси-сервер, то при грамотной настройке, если вдруг «отвалится» PHP-интерпретатор, сайт продолжит работу, отдавая посетителям кэшированные страницы.
  4. Nginx контролируем в настройке. Всё сосредоточено в нескольких.conf файлах и вся логика параметров базируется на запросе посетителя. Nginx разбирает запрошенный URL «по кирпичикам» и решает: отдать ли фотографию, перенаправить ли запрос PHP-интерпретатору, взять искомое из кэша или запретить доступ. В итоге ресурсов для отдачи контента отдаётся столько, сколько нужно. Apache работает иначе. Как именно, рассказано в статье, ссылку на которую я привёл в начале главы.

На мой взгляд, использовать Apache можно только в том случае, если разработчиками сайта явно заявлена совместимость только с этим веб-сервером. Но даже в этом случае можно сделать из Nginx прокси, позволив ему отдавать статические и кэшированные файлы, перенаправляя запросы на формирование динамических страниц к Apache. Так как WordPress прекрасно дружит с Nginx, подобную химеру рассматривать не буду. Только Nginx и PHP-FPM, чтобы исключить любые промежуточные этапы, способные снизить скорость работы и усложнить настройку.

Выбор PHP: версии 5.6, 7.0, 7.1 и 7.2

Сразу скажу: вам нужен PHP минимум седьмой версии. По сравнению с 5.6 прирост скорости может быть двухкратным. Те страницы, что открывались медленно, станут открываться быстрее, а быстрые вообще будут генерироваться практически мгновенно.

На момент написания статьи в Ubuntu 16.04 по умолчанию устанавливается PHP 7.0, хотя уже вышла 7.2. Между 7.0, 7.1 и 7.2 разница в производительности минимальна (от 1 до 10% в разных задачах). Приобретя опыт в настройке PHP, вы сможете установить самую свежую, но на первых порах лучше оставить ту, которая будет в стандартных репозиториях ОС.

Выбор сервера баз данных: MySQL, MariaDB, PostgreSQL и другие

Помимо веб-сервера и интерпретатора PHP, должен быть запущен сервер баз данных. WordPress отлично работает с MySQL и MariaDB, а вот с PostreSQL и другими SQL-как-бы-совместимыми базами данных всё печально. Если у сайта нет десятков тысяч активно комментирующих посетителей, обычный MySQL Server не будет «бутылочным горлышком» - операции чтения из базы данных отлично кэшируются.

Пока лучше остаться на MySQL Server. В перспективе можно перенести базу на MariaDB и таким образом ускорить работу нагруженного сайта, инструкций на эту тему в Интернете полно.

Нужен ли DNS-сервер

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

Моё мнение: это серьёзная угроза безопасности, потому что в случае взлома VPS, если будут изменены DNS-записи, исправление последствий может занять целые сутки, даже если вы мгновенно исправите взлом. То есть DNS-сервера во всём мире могут сутки открывать вместо вашего сайта поддельный, из-за чего вы потеряете посетителей и, что важнее, их доверие.

В течении 5-20 минут установятся веб-сервер Nginx, PHP-FPM в качестве интерпретатора PHP, Exim для отправки сообщений на электронную почту, MySQL Server для работы баз данных, Vsftpd для доступа по протоколу FTP, файрвол Iptables и средство автоматического бана Fail2Ban. Версии у программ будут те, которые находятся в репозитории Ubuntu.

В конце установки появится информация о том, по какому адресу доступна Vesta Control Panel, а также пароль нового пользователя admin, совпадающий с тем, что указали ранее в команде установки:

После установки Весты вам нужно выйти из сеанса вашего пользователя командой logout и перезайти под свежесозданным admin . И в будущем сидите только под ним, потому что:
а) все папки и файлы, которые потребуется создать в папке /home/admin/, будут принадлежать пользователю admin, вручную выполнять команду chown не потребуется,
б) меньше риск удалить системные файлы.

После установки VestaCP доустановите модули PHP, необходимые для работы WordPress:
sudo apt install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
Ещё один момент: софт после установки далеко не всегда запускается автоматически. Перезапустите сервер командой restart, чтобы MySQL Server, Nginx и прочие стартовали. Можно запустить и вручную, но перезапуск VPS - самый простой способ.

Работа в Vesta Control Panel

Так как для статьи я использую локальный виртуальный сервер, мой адрес для доступа к панели будет https://192.168.110.11:8083. У вас, конечно, другой. При заходе браузер предупредит, что https-соединение не защищено - не обращайте внимания. Затем будет запрос логина/пароля (тот самый admin и ваш пароль), после ввода откроется панель управления:

Для удобства можете нажать справа вверху надпись «admin» и в настройках профиля переключиться на русский язык.

В будущем вам лучше изучить основы Linux, чтобы понять, как сделать сервер «непробиваемым». А пока, чтобы хоть как-то обезопасить сервер, зайдите на вкладку «Фаервол» и заблокируйте порты служб FTP, DNS, POP3, IMAP, DB:

Когда потребуется загрузить файлы по протоколу FTP (адрес сервера - его IP, порт 21, пользователь admin, пароль тот же), можно временно разблокировать строку FTP. Постоянно держать открытыми порты со службами, которыми не пользуетесь, нельзя.

Краткое перечисление страниц панели управления Vesta:

  1. Пакеты. Здесь настраиваются шаблоны с ограничениями, назначаемые учётным записям (их может быть несколько). Честно говоря, смысла в них мало, потому что Веста не доросла до панели управления полноценного хостинга.
  2. IP. Настройка сетевых карт сервера. Лучше не трогать.
  3. Графики. Раздел, где должны рисоваться красивые графики использования памяти, пропускной способности сетевых интерфейсов, нагрузки на базу данных. На практике ни разу не замечал, чтобы они показывали что-то, имеющее отношение к действительности. Возможно, это я один такой везучий.
  4. Статистика. Просто полезная статистика, в пояснениях не нуждается.
  5. Журнал. Операции, проводимые в панели управления, можно отследить тут.
  6. Обновления. Можно узнать версии основных компонентов Весты.
  7. Фаервол. Удобная настройка фай рвола iptables. Разработчики - грамотеи.
  8. Сервер. Здесь можно остановить или перезапустить важные службы, а также настроить. Честно говоря, не советую настраивать службы через Весту, потому что иногда при сохранении она превращает файлы конфигурации буквально в кашу. Не знаю, с чем это связано, наблюдал на нескольких серверах. Вкладку лучше использовать только для перезапуска служб.
  9. USER. Добавление новых пользователей и управление существующих.
  10. WEB. Настройка сайтов. Самая важная вкладка, из-за которой Веста и нужна. О ней будет попозже.
  11. DNS. Настройка записей домена, если VPS выступает в роли DNS-сервера.
  12. MAIL. Настройка почтового сервера. В той конфигурации, что я вам рекомендую, страница бесполезна.
  13. DB. Вторая по важности после WEB вкладка, позволяет быстро создать новую базу данных.
  14. CRON. Крайне полезная вкладка, позволяющая настроить выполнение команд на сервере через заданные промежутки времени.
  15. BACKUP. Здесь можно создать и загрузить бекапы.

До идеала Весте далеко, но пользоваться можно. Чтобы не наступили на те же грабли, что и я, перечислю недостатки VestaCP:

1) Через Весту нельзя редактировать расширенные настройки. Возможность есть, но работает плохо. Например, на вкладке Сервер можно открыть настройки служб, где в удобных текстовых полях записаны какие-то значения. Если их изменить, не факт, что они сохранятся. А если нажать Дополнительные опции и попытаться отредактировать появившийся файл конфигурации вручную, служба может перестать запускаться, потому что строчки окажутся не там, где должны быть. Например, повторно добавиться в конец файла. А еще может открыться файл конфигурации от другой версии, по каким-то причинам оставшийся на сервере. Лучше самому делать тонкую настройку, редактируя файлы конфигурации через mcedit (как именно, покажу дальше).

2) Разработчики VestaCP имеют своё собственное видение того, какой софт должен ставиться вместе с панелью. Они написали отдельные скрипты для нескольких дистрибутивов Linux, подгружающиеся с их сайта во время установки. По их логике, если в Ubuntu 16.04 по команде apt install php ставится PHP версии 5.6, то так тому и быть. И не важно, что потом вместо 5.6 появится 7.0, а в репозиторий добавится ещё и php7.1, устанавливаемый командой apt install php7.1 - судя по комментариям на официальном форуме, такой ситуации не может быть в принципе.

Ещё веселее с поддержкой Ubuntu 16.10 - из-за ошибки в скрипте установки половина софта просто-напросто не устанавливается. На момент написания этой инструкции упоминание ошибки висит на официальном форуме Весты месяц, одна-единственная строчка с ошибкой до сих пор не исправлена. Чтобы не быть голословным, покажу часть скрипта установки софта для Убунты по адресу http://vestacp.com/pub/vst-install-ubuntu.sh:

Если следовать логике скрипта установки, то все дистрибутивы Убунты делятся на Ubuntu 16.04 и остальные. Вот только Ubuntu 16.10 - не остальные. В её репозиториях нет ни apache2.2-common, ни php5-fpm и другого устаревшего софта. Без редактирования скриптов установки работающий с VestaCP веб-сервер на Ubuntu 16.10 не получить.

3) Удобный инструмент управления базами данных phpMyAdmin, который ставит скрипт установки Весты, может просто не работать.

4) Способов «выстрелить в ногу» в Весте выше крыши. Например, ни в коем случае нельзя удалять шаблон default на странице Пакеты , в противном случае вы познаете боль и страдания.

5) Почему-то в скриптах установки панели нет корректной проверки на существование имеющегося софта. Поэтому, если на сервере изначально был установлен какой-то софт, например Apache, а вы ставите Весту без включения этого софта (только Nginx), возможны сбои. Например, просто ничего не заработает. Я не знаю, что тут посоветовать, кроме как удалить весь перечисленный в команде установки панели софт (nginx, phpfpm, apache, vsftpd, proftpd, exim, dovecot и так далее) и только потом ставить панель.

Несмотря на недостатки, среди бесплатных панелей управления лучше Vesta Control Panel ничего нет. Разве что , но у неё нет веб-интерфейса, нужно вводить команды с клавиатуры. Альтернативы Webmin, Froxlor, ajenti недостаточно автоматизируют управление сервером и сложнее в настройке, а у платного ISP Manager тоже хватает проблем.

Установка дополнительного софта

1. Memcached. Благодаря этой софтине можно разместить кэш в оперативной памяти сервера, что ускорит отдачу кэшированных страниц.

Устанавливается командой
sudo apt install memcached php-memcache
После этого рекомендую перезапустить сервер.

2. Littleutils. Нужен для работы плагина CW Optimizer, который сжимает фотографии, загружаемые на сайт. Оптимизация изображений - один из и привлечения посетителей (никто не любит медленную загрузку страниц). Лучше начать оптимизировать фотографии уже сегодня.

Сохраните настройки кнопкой OK, затем выйдите из MC кнопкой F10 и запустите коммандер снова, на этот раз командой sudo mc и повторите настройку.

Эта неочевидная опция сильно упростит жизнь во время редактирования файлов конфигурации. Она позволит временно скрывать с экрана текстовый редактор коммандера mcedit, переключаясь на консоль. Например, когда будете редактировать конфигурацию Nginx, вы сможете отредактировать файл, сохранить его кнопкой F2, затем скрыть редактор сочетанием клавиш Ctrl+O и ввести команду в консоли:
Если будет такой результат:

То с файлом всё отлично и можно перезагружать сервер, окончательно применяя новые настройки:
sudo service nginx restart
Если же появится сообщение о проблемах, можно нажать Ctrl+O и сразу поправить нужную строчку, не тратя время на переоткрытие файла.

Во многих инструкциях советуют редактировать файлы с помощью текстовых редакторов vi или nano . Консоль - не всегда удобно, зачем усложнять себе жизнь ещё больше? На мой взгляд, проще и быстрее в MC зайти в нужную папку, выбрать файл и нажать F4, чтобы открыть редактор, который можно скрыть в любой момент.

Как установить WordPress

1. Прежде чем приступить к установке сайта на Вордпресс, создайте отдельную базу данных на вкладке DB, нажав зеленую кнопку «+ «:

Без базы данных сайты на WP не работают. Им нужно где-то хранить настройки и тексты записей. И лучше для каждого сайта создавать отдельную базу данных. Тогда в случае взлома одного сайта до других добраться будет сложнее.

2. На вкладке WEB добавьте сайт кнопкой «+ «:

Пройдусь по порядку по всем пунктам при добавлении нового домена/сайта:

Домен: адрес сайта. Если домен пока не купили, укажите тот, который планируете купить. В файле hosts компьютера (и сервера тоже в папке /etc/hosts) можно связать домен и IP-адрес сервера, чтобы вы уже могли пользоваться сайтом по выбранному адресу.

IP адрес: адрес вашего сервера. Сетевых карт может быть несколько, поэтому нужно убедиться, что выбран адрес, соответствующий выданному провайдеру.

Поддержка DNS: так как VPS не работает как DNS-сервер, нужно снять галку.

Поддержка почты: тоже снять галку, потому что на сервере будет только Exim для отправки писем, VPS в качестве почтового сервера не подходит по той же причине, что и поддержка DNS.

Следующие пункты появятся при нажатии «Дополнительные опции»:

Алисы: дополнительные адреса, с которых перенаправлять на основной домен.

Поддержка SSL: поддержка шифрования. Современные сайты должны поддерживать защищённый протокол https , здесь сомнений быть не может. После включения опции нужно отметить и «Поддержка Lets Encrypt «, чтобы использовать бесплатные сертификаты Let’s Encrypt. После сохранения настроек нужно повторно поставить галку на «Поддержка Lets Encrypt», потому что с первого раза сертификат может не сгенерироваться.

Учтите два момента:

  1. Нельзя получить сертификат на домен или поддомен, если в A-записях домена указан IP другого сервера. Это сделано для того, чтобы никто, кроме владельца домена, не смог получить SSL-сертификат. Поэтому до покупки домена и настройки DNS вы сертификат не получите. То есть, чтобы сайт заработал по протоколу https, ваш сайт должен открываться по протоколу http. Только потом можно настроить редирект с http на https.
  2. Генерация ключей Let’s Encrypt через Весту работает через раз. Придётся смотреть логи и разбираться, в чём проблема (они в папке /usr/local/vesta/log) или воспользоваться сторонними утилитами.

Статистика сайта: включение встроенной системы статистики. В большинстве случаев лучше не включать, чтобы не нагружать сервер.

Дополнительный ftp: создание аккаунта ftp специально для работы с папкой, где будет находиться сайт. Даёт ощущение ложной безопасности - мол, дадите только пароль от этого сайта и до других файлов никто не доберётся. На самом деле это не так, VestaCP не подходит организации хостинга с полностью изолированными друг от друга сайтами и пользователями.

3. Когда создадите сайт на вкладке WEB, не торопитесь уходить. Вам нужно снова зайти в настройки сайта (кнопка «Редактировать» при наведении мыши на пункт меню. Появятся новые настройки - выбор шаблонов Web и Backend:

Шаблон Web в VestaCP отвечает за набор настроек Nginx, специфичных для каждой из популярных CMS. Шаблон Backend отвечает за настройку связи между веб-сервером и PHP-интерпретатором.

Выберите Шаблон Web - wordpress , а Шаблон Backend - socket (связь через сокеты работает быстрее связи через порты). Если галка с «Поддержка Lets Encrypt» оказалась снята, поставьте снова. Нажмите Сохранить и снова откройте настройки сайта и поставьте Шаблон Web - wordpress2 и снова сохраните настройки.Почему не выбрать сразу шаблон wordpress2? Ну, я говорил, что VestaCP - глючная штука, это одна из проблем - правильный файл конфигурации для WordPress не генерируется корректно с первого раза.

Обновление от 4.04.2017: Сначала сгенерируйте Let’s Encrypt ключи, потом выбирайте шаблон Web wordpress2, Backend - socket. Или, если SSL не нужно, выбирайте шаблоны wordpress2, socket и сохраняйте настройки.

Если посты отдают 404 ошибку при включенных в админке WP постоянных «красивых» ссылках, используйте шаблон Nginx из поста

4. Запустите Putty, зайдите под пользователем admin.

Выполните команды по очереди:
cd /home/admin/tmp/
wget https://ru.wordpress.org/latest-ru_RU.zip
unzip latest-ru_RU.zip -d /home/admin/web/имя_вашего_домена/public_html/
mv /home/admin/web/имя_вашего_домена/public_html/wordpress/* /home/admin/web/имя_вашего_домена/public_html/
rm latest-ru_RU.zip
rm -r /home/admin/web/имя_вашего_домена/public_html/wordpress
sudo service nginx restart
5. Сайт уже должен заработать. Зайдите через браузер по адресу https ://адрес_сайта, откроется страница установки:

Если зайти по обычному протоколу http, придётся в панели управления WordPress заходить в Настройки - Общие и менять значения в полях Адрес WordPress (URL) и Адрес сайта (URL) с обычного http на https, чтобы CMS поняла, что приоритет у защищённого протокола.

По порядку заполните все поля:

  • Имя базы данных - имя той базы данных, что создали в первом шаге.
  • Имя пользователя - имя пользователя к базе данных из первого шага.
  • Пароль - думаю, понятно, что это пароль к базе.
  • Сервер базы данных - так как база данных на том же сервере, оставляйте «localhost».
  • Префикс таблиц - введите что-нибудь случайное.

6. На следующем этапе нужно указать название сайта, имя пользователя-администратора сайта и ваш e-mail:

Пожалуйста, не указывайте в качестве имени пользователя такие банальные логины, как admin или домен сайта. Не надо облегчать жизнь вредоносным ботам-сканерам, которые будут пытаться подобрать пароль к вашей админке.

7. Откроется панель управления сайта:

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

Установка и настройка необходимых плагинов WordPress

Все плагины ставятся сразу из админки. Достаточно пройти в раздел Плагины - Добавить новый и ввести имя плагина в поле поиска.

CW Image Optimizer. Плагин, оптимизирующий каждую фотографию, загружаемую на сайт. В настройке не нуждается. Достаточно было установки Littleutils из прошлого шага. Хочу подчеркнуть - все альтернативы этого плагина платные. Есть разве что EWWW Image Optimizer, но он плохо оптимизирует.

DCO Russian Fixes - плагин для транслитерации имён файлов и ссылок и корректировки формата дат. После установки и активации в настройке не нуждается.

SSL Insecure Content Fixer (Фильтр небезопасного содержимого SSL) - делает все ссылки на сайте ведущими на https-версию вместо http. Работа защищенного соединения HTTPS влияет на ранжирование в поиске Гугла, нужно по-максимуму использовать эту возможность. Рекомендую после установки плагина зайти в раздел Настройки - Небезопасный контент SSL и переключить плагин на режим Виджеты , чтобы все ссылки страницы вели на защищённые версии.

iThemes Security - плагин для повышения уровня безопасности. После установки и активации в верхней части панели управления появится кнопка «Получите бесплатно API ключ» - нажмите и получите его. Настройки iThemes Security смотрите ниже в отдельной главе.

Autoptimize - для объединения всех.css и.js файлов темы и плагинов в один, чтобы сократить количество запросов к серверу. Пока протокол HTTP/2 не шибко актуален, для ускорения загрузки страниц можно экономить запросы. Я перепробовал все подобные плагины, Autoptimize - самый корректный, он совместим с большинством тем WordPress. После установки и активации плагина зайдите в его настройки и включите все три вида оптимизации: HTML, CSS и JS.

W3 Total Cache - самый лучший в мире плагин кэширования. С Nginx отлично дружит, после установки и настройки сайт будет летать. Выделил настройку в отдельную главу. Ничего сложного, нужно просто пробежаться по пунктам.

Настройка iThemes Security

После установки плагина и получения бесплатного API ключа зайдите в пункт Security в меню панели и пройдитесь по разделам настроек. Я перечислю только те, которые лучше изменить, всё остальное можете не трогать.

Основные настройки:

  • Тип журнала событий - Только в файле , чтобы база данных не росла в размере.
  • Скрыть меню безопасности в админ панели - поставьте галку, чтобы убрать не шибко нужный пункт.

Заблокированные пользователи:

  • Включить черный список от сайта HackRepair.com - поставьте галку.

Local Brute Force Protection:

  • Автоматически запретить пользователя «admin» - поставьте галку, чтобы каждый бот и умник, пытающийся зайти в вашу панель управления под самым банальным во Вселенной логином, получал автоматический бан.

SSL:

  • Нажмите Enable в этом блоке настроек. Потом зайдите в его настройки и отметьте SSL для консоли управления , чтобы панель управления работала только по HTTPS.

Тонкая подстройка системы:

  • Нажмите Enable, чтобы включить блок настроек. Затем в настройках поставьте галку на опциях Защита системных файлов, Отключить просмотр каталогов, Отключить PHP в папке Uploads, Disable PHP in Plugins, Disable PHP in Themes. Последние три опции могут поломать работу некачественно написанных шаблонов оформления и плагинов, так что поможет выявить подобные поделия.

Подстройка WordPress:

  • Поставьте галки на Remove the Windows Live Writer header, Remove the RSD (Really Simple Discovery) header, Уменьшить спам в комментариях, Отключить сообщение об ошибке при неудачной попытке входа, Отключает архив автора для пользователя, у которого нет записей.
  • Если не пользуетесь программой WordPress на Android, поставьте опцию XML-RPC в режим Отключить XML-RPC.
  • REST API - в Restricted Access.

Настройка W3 Total Cache

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

I. Кэширование PHP с помощью технологии OPCache. Компиляция скриптов в более быстрый код, ускоряет их выполнение минимум в 2 раза. Выбор веб-сервера на работу OPCache не влияет, это настройка интерпретатора PHP. Как включить, расскажу в отдельной главе ниже.
II. Кэширование средствами CMS. Благодаря плагинам кэширования WordPress типа W3 Total Cache или WP Super Cache результат работы скриптов в виде страничек сайта отдаётся не только веб-серверу, но и сохраняется в виде статичных html-файлов. Самый предсказуемый, управляемый вид кэширования. При первом посещении страничка откроется медленно (как обычно), при последующих - очень быстро, как и все статичные файлы, если используется Nginx. При использовании Apache страницы тоже станут открываться шустрей, но по сравнению с Nginx прирост мал.
III. Кэширование с помощью Varnish или любого другого кэширующего прокси. Nginx и Apache можно настроить так, чтобы вместо обращения к интерпретатору страница подгружалась из промежуточного кэша, если она там есть. Если мне кто-нибудь объяснит, зачем нужен этот велосипед, буду весьма признателен. Ни одного плюса в подобной прослойке не вижу, потому что см. далее:
IV. Кэширование средствами Nginx. Сам веб-сервер тоже может сохранять готовые страницы и отдавать посетителям. Благодаря такой работе сайт будет открываться очень, очень быстро. Особенно если папку с кэшем расположить в оперативной памяти сервера.
К сожалению, в отличии от кэширования с помощью WordPress, Nginx будет отдавать посетителям старые странички до тех пор, пока файлы кэша не будут удалены. Раньше можно было управлять очисткой с помощью плагина WordPress Nginx Helper, но в последних бесплатных версиях веб-сервера разработчики удалили модуль fastcgi_cache_purge. Настроить кэширование в Nginx для корректной работы всё же можно, но это тема отдельной статьи. В большинстве случаев такое кэширование не нужно, достаточно кэширования средствами CMS.
V. Браузерное кэширование. Можно и нужно настроить веб-сервер так, чтобы браузер кэшировал статичные файлы (фотографии, .css и.js файлы) минимум на неделю, чтобы лишний раз не загружать с сервера одно и то же. Включается легко в том же W3 Total Cache, польза неоспорима.
При использовании Apache II и III виды кэширования не смогут быть эффективными, потому что обработкой запросов будет заниматься медленный веб-сервер.

Итак, как же ускорить с помощью W3 Total Cache? Установите этот плагин, зайдите в его настройки на страницу General Settings:

Раздел Page Cache:

  • Галку на Enable , настройку Page Cache Method на Memcached.

Раздел Database Cache:

  • Галку на Enable , настройку Database Cache Method на Memcached.

Раздел Object Cache:

  • Галку на Enable , настройку Object Cache Method на Memcached.

Раздел Miscellaneous:

  • Снимите галку с Enable Google Page Speed dashboard widget , этот инструмент может ввести в заблуждение.
  • Снимите галку с Anonymously track usage to improve product quality , незачем отсылать информацию о своём сайте.

Страница настроек Page Cache:

  • Поставьте галки в разделе General на опциях Cache feeds: site, categories, tags, comments, Cache SSL (https) requests.
  • В разделе Advanced , если будете использовать популярный плагин Yoast SEO, измените содержимое поля Never cache the following pages: на
    wp-.*\.php
    index\.php
    (+)?sitemap(_index)?(-)?(*)?\.(xml(\.gz)?|xsl)$

Страница настроек Browser Cache (настройка кэширования в браузере):

  • Поставьте галки в разделе General на опциях Set expires header, Set cache control header, Set entity tag (ETag), Don’t set cookies for static files, Apply HTTP Strict Transport Security policy.
  • Поставьте галки в разделах CSS & JS, HTML & XML, Media & Other Files на опциях Set expires header, Set cache control header, Set entity tag (eTag), Disable cookies for static files.

Страница Extensions:

  • Выключите модули Fragment Cache и New Relic.

Подобных настроек достаточно, чтобы сайт стал открываться быстро. Не забудьте посмотреть следующую главу, чтобы подключить часть настроек Nginx, которые создали плагины iThemes Security и W3 Total Cache.

Настройка Nginx

Осталось совсем чуть-чуть: нужно сделать так, чтобы Nginx подключал настройки, сделанные плагинами iThemes Security и W3 Total Cache. Для редактирования файлов конфигурации Nginx нужны права суперпользователя, поэтому запустите Midnight Commander командой
sudo mc
и зайдите в папку /home/admin/conf/web:

Увидите два файла:

  1. nginx.conf - настройка сайтов, доступных по протоколу http.
  2. snginx.conf - сайты по протоколу https.

В nginx.conf настройки сайтов будут всегда. В snginx.conf только в том случае, если включали SSL при создании сайта в панели управления VestaCP. В принципе, вы можете редактировать эти файлы, но после этого при попытке добавить новый сайт через Весту конфигурационные файлы превратятся в кашу. Придётся сбросить все правки командой v-rebuild-web-domains admin yes .

Поэтому нужно создать отдельный файл с настройками, который подхватится nginx, и не будет мешать работе панели управления. Для этого в Midnight Commander в папке /home/admin/conf/web нажмите Shift+F4 . Если до этого никогда не редактировали файлы через MC, появится выбор редактора. Выберите mcedit .

Вставьте туда вот такой код:
include /home/admin/web/имя_вашего_домена /public_html/*.conf;
Благодаря этой строчки будет подхватываться файл nginx.conf, который создается плагином W3 Total Cache и другими совместимыми с Nginx.

Если пользуетесь плагином SEO-оптимизации Yoast SEO, добавьте ещё это:

#Yoast SEO Sitemaps location ~ ([^/]*)sitemap(.*).x(m|s)l$ { rewrite ^/sitemap.xml$ /sitemap_index.xml permanent; rewrite ^/(+)?-?sitemap.xsl$ /index.php?xsl=$1 last; rewrite ^/sitemap_index.xml$ /index.php?sitemap=1 last; rewrite ^/([^/]+?)-sitemap(+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 last; }

Нажмите F2 для сохранения файла, появится окно выбора имени файла. Введите nginx.имя_вашего_домена.conf_custom.

Потом Ctrl+O для скрытия MC и наберите в консоли для проверки конфига:
sudo service nginx configtest
Если всё ОК, перезапустите сервер для применения конфига:
sudo service nginx restart
Теперь ваш сайт защищён и кэширование работает нормально.

Настройка PHP-FPM

В Интернете полно инструкций о том, что можно редактировать в файле /etc/php/7.0/fpm/php.ini. Я лишь приведу парочку, которые в любом случае стоит изменить.

Для повышения безопасности:

Session.use_strict_mode = 1

Для включения OPCache, о котором я писал выше:

Opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=7963 opcache.max_wasted_percentage=10

Обратите внимание - нужно убрать « перед строками. Ещё можете указать параметр opcache.validate_timestamps=0 , если готовы перезагружать сервер после каждого обновления темы, плагинов и самого WordPress. Параметр отключает проверку изменения файлов PHP, придётся очищать вручную кэш OPCache.

После применения настроек перезагрузите Nginx и PHP-FPM командой:
sudo service nginx restart && sudo service php-fpm restart

Что дальше?

Файлы конфигурации, где сосредоточены все настройки, влияющие на производительность сервера:

  • Настройки веб-сервера Nginx хранятся в файле /etc/nginx/nginx.conf
  • Настройки PHP хранятся в файлах папки /etc/php/7.0/fpm/
  • Настройки сервера MySQL в /etc/mysql/my.cnf

Для того, чтобы копаться в конфигах, нужны знания и возможность измерить результаты. Поэтому советую не переживать и оставить настройки по умолчанию. Они подходят для большинства серверов и сайтов. Когда вы по-настоящему поймёте, как работают веб-сервера, вот тогда стоит приступать к экспериментам.

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

P.S. Ко мне поступило несколько предложений написать инструкцию по установке VestaCP для CentOS. Разница между Убунтой и любым другим дистрибутивом Linux невелика. Вы вполне можете поставить Весту и на Debian, и CentOS, если знаете команды пакетного менеджера. Поэтому отдельной статьи не будет.

P.P.S. Я не оказываю помощь в настройке этой панели управления. Судя по проблемам, возникшим примерно за год использования, данная панель довольно глючная. С ней постоянно возникают какие-то неурядицы, которые новички решить не могут. Я не автор этого продукта, ресурсов и времени быть техподдержкой VestaCP у меня нет.



просмотров