Настройка виртуальных хостов на Nginx в CentOS 6

Виртуальные хосты (virtual host) позволяют разместить несколько сайтов на одном выделенном сервере.

В терминологии Nginx виртуальные хосты также принято называть блоками server (server block), но термин Apache «виртуальный хост» более распространён.

Требования

Для выполнения руководства нужно предварительно установить веб-сервер Nginx:

  • Добавьте репозиторий EPEL

su -c 'rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm'

  • Установите Nginx

yum install nginx

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

Если же у вас пока что нет заверенного доменного имени, вы можете протестировать настройку виртуального хоста при помощи фиктивных данных (см. раздел 6).

1: Создайте новый каталог

Сначала нужно создать каталог для хранения данных нового сайта.

В конфигурационном файле Nginx этот каталог называется Document Root. Добавьте в команду флаг –р, чтобы команда автоматически сгенерировала родительские каталоги.

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

2: Передайте права

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

sudo chown -R www:www /var/www/example.com/public_html

Кроме того нужно убедиться, что файлы в этом каталоге открыты для чтения:

sudo chmod 755 /var/www

3: Создайте страницу

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

sudo vi /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>

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

4: Настройте виртуальный хост

На данном этапе нужно отредактировать настройки nginx.

sudo vi /etc/nginx/conf.d/virtual.conf

Файл виртуального хоста уже заполнен, но в нём нужно изменить некоторые параметры. В server name укажите свой домен или IP, а в location – root-каталог проекта.

#
# A virtual host using mix of IP-, name-, and port-based configuration
#
server {
listen       80;
#    listen       *:80;
server_name  example.com;
location / {
root   /var/www/example.com/public_html/;
index  index.html index.htm;
}
}

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

5: Перезапустите Nginx

В настройки веб-сервера было внесено множество изменений. Чтобы активировать их, перезапустите Nginx.

/etc/init.d/nginx restart

6: Настройка локальных хостов (опционально)

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

Перейдите на локальную систему.

Примечание: Для выполнения этого раздела нужен пароль администратора.

Откройте файл hosts:

nano /etc/hosts

В этот файл можно добавить данные локального хоста. Пока в этом файле находится строка, содержащая IP и server name, браузер будет выводить данные для виртуального хоста с этим IP-адресом.

# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
#Virtual Hosts
12.34.56.789    www.example.com

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

7: Проверьте виртуальный хост в действии

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

Success—You Have Set Up a Virtual Host

Заключение

Чтобы добавить ещё несколько виртуальных хостов, просто повторите все вышеописанные действия, указывая новый домен. Затем просто скопируйте и вставьте информацию о новом виртуальном хосте в конфигурационный файл nginx:

#
# A virtual host using mix of IP-, name-, and port-based configuration
#
server {
listen       80;
#    listen       *:80;
server_name  example.com;
location / {
root   /var/www/example.com/public_html/;
index  index.html index.htm;
}
}
server {
listen       80;
#    listen       *:80;
server_name  example.org;
location / {
root   /var/www/example.org/public_html/;
index  index.html index.htm;
}
}

Tags: , ,

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