Как настроить VPS сервер на Linux Debian для хостинга сайта
Не устраивают возможности виртуального хостинга? Развивающийся веб-проект требует больше ресурсов? Оптимальное решение для молодых, но весьма перспективных сайтов, набирающих популярность в сети – переход с обычного хостинга на 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/000-default.conf /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 в строку адреса вашего браузера на экране появится надпись: Виртуальный хостинг работает.
Все готово для загрузки и установки работающего проекта.