Как настроить VPS сервер на Linux Debian для хостинга сайта

June 22, 2016

Не устраивают возможности виртуального хостинга? Развивающийся веб-проект требует больше ресурсов? Оптимальное решение для молодых, но весьма перспективных сайтов, набирающих популярность в сети – переход с обычного хостинга на VPS.

VPS/VDS (англ. Virtual Private/Dedicated Server) – виртуальный сервер. Как правило, в рамках подобной услуги в распоряжение клиент получает часть аппаратных ресурсов физического сервера (конфигурация и производительность зависит от выбранного тарифа). Это качественный скачок в развитии онлайн ресурса.

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

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

Оптимальная конфигурация VPS сервера для сайта

Основная проблема виртуальных хостингов заключается в том, что на одном физическом сервере может располагаться сразу до 50-100 сайтов. Расчет делается на то, пользователи посещают веб-сайты в разное время, и нагрузка равномерно распределяется на протяжении дня. Теоретический каждый сайт должен успешно справляться с несколькими тысячами пользователей в день, однако, достаточно часто на практике дела обстоят иначе.

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

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

Небольшой развивающийся проект

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

  • 512 Мб оперативной памяти;
  • 5 - 10 Гб свободного дискового пространства;
  • 1,5 - 2 ГГц вычислительной мощности.

Ресурсов достаточно для эффективной обработки до 10 000 пользователей в сутки. Впрочем, при грамотной оптимизации многим вебмастерам удается добиться результата в 20-25 тысяч посетителей. В дальнейшем с ростом числа пользователей можно перейти на более дорогой тариф, существенно расширив возможности системы.

Активно развивающийся портал, форум, небольшой интернет-магазин

  • 1-2 Гб оперативной памяти;
  • 20 - 30 Гб HDD; - 2 ядра по 2
  • 25 ГГц.

Решение для популярных сайтов, новостных порталов, блогов с количеством посетителей до 20-30 тысяч пользователей в сутки.

Успешный сайт, небольшой игровой сервер (Minecraft, Mu, Lineage и др.)

  • от 4 Гб RAM;
  • 30-50 ГБ HDD;
  • 2-3 ядра по 3 – 3,5 ГГц.

Оптимальное решение для успешных веб-проектов с количеством посетителей, достигшим 50 тысяч пользователей. Аппаратной части достаточно для обработки мультимедиа контента, создания серверов для онлайн-игр.

Характеристики приведены для дистрибутивов Linux Ubuntu и Debian. Они отличаются стабильной работой, обеспечивают высокую производительность при минимальном потреблении ресурсов.

Подключение к серверу по SSH

Для подключения к VPS-серверу используется протокол SSH. Это защищенный протокол (Secure Shell – защищенная оболочка), предназначенный для удаленного управления операционной системой, программным обеспечением и передачи файлов. SSH использует надежные алгоритмы шифрования данных, обеспечивая безопасное соединения с сервером.

Для работы протокола SSH необходим сервер, устанавливаемый на управляемой машине, и клиент. Управление VPS/VDS сервером осуществляется посредством командной строки.

Существует достаточно много клиентских программ для различных операционных систем. Самые простые, надежные и популярные: Bitvise SSH Client и PuTTY. На примере последней мы и разъясним процесс подключения.

Для начала нужно скачать на свой компьютер клиент (в нашем случае PuTTY). Русскоязычная версия доступна здесь. Приложение имеет приблизительно такой вид:


В соответствующем поле («Host Name» или «Имя хоста») вводим предоставленный IP-адрес виртуального сервера, устанавливаем переключатель «connection type» возле SSH, «PORT» оставляем 22, «Saved Sessions» - произвольное название сессии. Теперь нужно нажать внизу окна кнопку «OPEN» (или «Соединиться»).

Открывается консоль, напоминающая командную строку Windows. Система просит ввести логин, по умолчанию – root.

Обратите внимание! Root – это суперпользователь с наивысшими правами доступа в Linux, аналог администратора в Windows. В дальнейшем для каждого сайта можно создать отдельного пользователя с ограниченными правами.

Теперь вводим пароль (можно вставить заранее скопированный (в PuTTY – щелчок правой кнопкой мыши), нажимаем Enter.

Соединение установлено!

В целях безопасности, создаем нового пользователя с ограниченными правами, с которым и будем работать дальше. Для этого вводим команду:

adduser polzovatel

Где polzovatel – имя, которое можно задать произвольно.

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

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

Обратите внимание! sudo – утилита, позволяющая обычному пользователю заниматься администрированием системы с правами суперпользователя (root). Вводится sudo в начале команды.

Установка любого программного обеспечения в Linux-операционных системах начинается с обновления индекса пакетов. В процессе обновления индекса пакетов ваша операционная система связывается с репозиторием (хранилищем большинства программного обеспечения для вашего дистрибьютива) и «узнает» о последних версиях программного обеспечения и взаимозависимостях различных программных пакетов.

Вводим команду:

apt-get update

После обновления индекса устанавливаем утилиту sudo:

apt-get install sudo

Теперь непосредственно наделяем polzovatel правом применять команду sudo:

usermod -a -G sudo polzovatel

Теперь можем войти и продолжить настройку системы под новым пользователем. Вводим команду:

ssh polzovatel@хх.ххх.xx.xx

Где хх.ххх.xx.xx – IP адрес сервера.

Нас спрашивают, желаем ли мы соединиться. Набираем в консоли yes, жмем Enter.

Полезные команды, которые пригодятся в работе с командной консолью:

  • ls –lha – показать список имеющихся файлов, загруженных на сервере, включительно с данными о размере и правах доступа;
  • cd [имя каталог] – перейти к указанному каталогу;
  • mv – изменить имя/переместить;
  • rm – удалить;
  • cp – копировать;
  • chmod – установить права доступа к фалу или каталогу;
  • cat – показать содержимое файла;
  • mc – запустить встроенный менеджер файлов, напоминающий Нортон.
  • mkdir [произвольное_имя] – создать новый каталог.

Теперь можно приступать к установке необходимого программного обеспечения.

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

Чтобы запустить и настроить веб-сервер необходимо установить базовый набор программного обеспечения: LAMP (Linux+Apache+MySQL+PHP). Запускаем инсталляцию пакета LAMP и панели phpMyAdmin:

sudo apt-get install apache2 apache2-doc mysql-server mysql-client php5 php5-mysql libapache2-mod-php5 phpmyadmin

Откроется диалог, в котором нам попросят подтвердить начало установки указанных пакетов, подтверждаем – жмем клавиши Y и Enter.

В очередном диалоге задаем пароль для базы данных MySQL (в дальнейшем его можно изменить):


Для подтверждения вводим повторно пароль:


Дальше система запрашивает тип веб-сервера для автоматической настройки phpMyAdmin – выбираем apache2:


При открытии очередного диалога соглашаетесь (Y и Enter) с применением стандартных настроек phpMyAdmin и автоматическим созданием служебной базы данных:


Задаете пароль для phpMyAdmin и повторяете ввод:


Теперь нужно откорректировать конфигурацию Apache. Открываем файл с настройками:

sudo nano /etc/apache2/apache2.conf

После открытия на новой строке в конце документа вводим:

ServerName localhost:80

Теперь для выхода из редактора нажимаем Ctrl+X, потом соглашаемся сохранить изменения - Y и Enter.

Добавляем сайты на VPS сервер: настройка Apache и DNS

Apache позволяет создать бесконечное количество виртуальных хостов, вследствие к одному IP можно привязать множество сайтов. Но не стоит забывать об аппаратных ограничениях. Процесс размещения нескольких сайтов на одном VPS/VDS сервере разделяется на несколько этапов.

Первый этап: создаем отдельные каталоги для сайтов

Создаем каталоги, к которым будет обращаться Apache. В них будут храниться файлы ваших сайтов и веб-приложений. Вводим в командной консоли:

sudo mkdir -p /var/www/mysitename1.org/public_html
sudo mkdir -p /var/www/mysitename2.org/public_html

mkdir – команда «создать каталог (папку), параметр «-p» задается для рекурсивного создания папок: сначала появляется каталог «mysitename1.org», потом каталог «public» – в нем и будет храниться контент веб-ресурсов, которые вы планируете разместить. «/var/www/» - путь, по которому будут создаваться новые директории. Название папок можно задать произвольное.

Обратите внимание, Apache имеет доступ только к каталогу /var/www, а также ко всем вложенным в него папкам и файлам.

Второй этап: устанавливаем права

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

sudo chown -R polzovatel:polzovatel /var/www/mysitename1.org/public_html
sudo chown -R polzovatel:polzovatel /var/www/mysitename2.org/public_html

polzovatel – это имя пользователя, которому присваиваются права доступа к каталогам public_html, содержащим файлы сайта.

Редактируем права доступа:

sudo chmod -R 755 /var/www

Обратите внимание! В Linux-системах права доступа задаются цифрами для всех типов пользователей: создателя файла/директории, пользователей группы владельца, других пользователей.

Например, 755 означает:

Владелец Группа Остальные
7 5 5
Все права: чтение, выполнение и запись Чтение и выполнение Чтение и выполнение

В таблицы приведены варианты присвоения прав:

Значение Права доступа к файлу Права доступа к каталогу
0 Нет Нет
1 Выполнение Чтение файлов, просмотр свойств
2 Запись Нет
3 Запись, выполнение Все, за исключение просмотра списка файлов
4 Чтение Просмотр имен файлов
5 Чтение, выполнение Доступ, чтение
6 Чтение, запись Доступ, чтение
7 Полные права Полные права

Третий этап: создаем проверочные страницы

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

Формируем index.html:

nano /var/www/mysitename1.org/public_html/index.html

В файле создаем простой html-документ:

<html>
  <head>
	<title>Приветствуем на mysitename1.org!</title>
  </head>
  <body>
	<h1>Виртуальный хостинг работает!</h1>
  </body>
</html>

Сохраняем файл.

Повторяем процедуру для других сайтов. Можно ускорить процесс, скопировав содержимое первого документа в каталог второго сайта:

cp /var/www/mysitename1.org/public_html/index.html /var/www/mysitename2.org/public_html/index.html

Четвертый этап: настройка виртуальных хостов Apache

В поставке веб-сервера Apache уже есть стандартный файл default с конфигурацией виртуального хостинга. Нам нужно немного отредактировать исходный документ.

Копируем файл:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysitename1.org.conf

Редактируем файл с root-правами:

sudo nano /etc/apache2/sites-available/mysitename1.org.conf

Заменяем содержимое файла следующей минимальной конфигурацией:


    ServerAdmin feedback@mysitename1.org
    ServerName mysitename1.org
    ServerAlias www.mysitename1.org
    DocumentRoot /var/www/mysitename1.org/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

Сохраняемся, аналогичные операции выполняем для последующих доменов.

Пятый этап: включаем хосты

Чтобы подключить домены, в консоли задаем:

sudo a2ensite mysitename1_org.conf
sudo a2ensite mysitename2_org.conf

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

sudo service apache2 restart

Шестой этап: настраиваем NS записи доменов

Не забудьте сменить NS записи для ваших доменов. Наиболее простой способ – привязать доменное имя к IP-адресу VPS-сервера у регистратора имен. Для этого необходимо прикрепить домен к серверу регистратора, а затем в разделе «Управление DNS-зоной» (или аналогичном) создать три записи типа А с именами: *, @ и www. В поле IP указать выделенный адрес VPS-сервера. Обратите внимание! Изменение NS записей может занять до 24 часов.

Если вы используете тестовый, незарегистрированный домен, то для проверки работоспособности только что настроенного веб-сервера нужно внести изменение в файл hosts на локальном компьютере. В Windows он расположен в папке C:\Windows\System32\Drivers\etc.

Открываем файл в блокноте с правами Администратора. В конце файла прописываем IP адрес сервера и «тестовые» домены ваших сайтов:

хх.ххх.хх.ххх mysitename1.org
хх.ххх.хх.ххх mysitename2.org

Сохраняем документ. хх.ххх.хх.ххх – IP-адрес VPS-сервера.

Веб-сервер настроен!

При вводе адреса mysitename1.org в строку адреса вашего браузера на экране появится надпись: Виртуальный хостинг работает.

Все готово для загрузки и установки работающего проекта.

Подпишитесь на нашу рассылку,
чтобы получать последние обновления нашего блога!