Nginx: Настройка блоков server в Debian 7

Что такое блок server?

По сути, блок server – это название виртуального хоста Nginx, который позволяет запустить более одного сайта на одном виртуальном выделенном сервере.

1: Настройка сервера

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

Обратите внимание: имя пользователя user в приведенных ниже командах нужно заменять именем своего пользователя.

Кроме того, нужно установить Nginx. Если данный веб-сервер еще не установлен, используйте команду:

sudo apt-get install nginx

Примечание: чтобы убедиться, что виртуальный хост работает, нужно указать утвержденный домен или IP-адрес. В данном руководстве будет использоваться example.com; замените данное доменное имя собственным.

2: Создание нового каталога

Теперь нужно создать каталог для хранения информации нового сайта. В Apache это Document Root виртуального конфигурационного файла.

При помощи флага –р команда автоматически сгенерирует все родительские каталоги (т.е., каталоги верхнего уровня) для нового каталога.

sudo mkdir -p /var/www/example.com/public_html

3: Привилегии на каталог

Очень важно передать все права на каталог правильному пользователю. Если этого не сделать, то обладателем будет считаться root.

Для этого выполните данные команды:

sudo chown -R user:user /var/www/generic.com/public_html
sudo chmod 755 /var/www

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

4: Создание страницы сайта

Для редактирования конфигураций сервера в данном руководстве используется текстовый редактор nano.  Как правило, он проще остальных текстовых редакторов. Тем не менее, можно использовать любой удобный редактор, например, vi.

Итак, теперь в только что созданном каталоге нужно создать новый файл, index.html:

sudo nano /var/www/example.com/public_html/index.html

В него нужно внести следующий текст, чтобы при открытии на странице был какой-то контент:

<html>
<head>
<title>www.example.com</title>
</head>
<body>
<h1>Success: You Have Set Up a Virtual Host</h1>
</body>
</html>

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

5: Создание нового виртуального хоста

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

К счастью, Nginx предоставляет макет такого файла в каталоге sites-available (/etc/nginx/sites-available). Все, что нужно сделать, – просто скопировать текст в новый пользовательский файл.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com

6: Виртуальные хосты

Откройте новый виртуальный хост, содержащий все необходимые настройки.

sudo nano /etc/nginx/sites-available/example.com

в этот файл нужно внести несколько простых изменений:

server {
listen   80; ## listen for ipv4; this line is default and implied
#listen   [::]:80 default ipv6only=on; ## listen for ipv6
root /var/www/example.com/public_html;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name example.com;
}

Данный блок кода:

  • раскомментирует строку listen 80, благодаря чему весь трафик, поступающий через этот порт, будет направлен на сайт;
  • делает каталог, созданный в разделе 1, root-кталогом. Если root указан неверно или отсутствует, настроить виртуальный хост будет невозможно;
  • заменяет server name доменным именем или IP-адресом.

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

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

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com

Чтобы избежать ошибки Conflicting Server Name и убедиться, что на сайте отображается правильный контент, удалите блок server по умолчанию.

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

7: Перезапуск Nginx

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

sudo service nginx restart

8: Выход в сеть

Завершив настройку виртуального хоста, введите доменное имя или IP-адрес в браузер. Если все выполнено верно, появится сообщение вроде «Success — You Have Set Up a Virtual Host».

Готово! Теперь, чтобы добавить еще один виртуальный хост, просто повторите процесс, описанный в данном руководстве, используя новые значения и доменное имя.

Tags: , , , ,

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