Поиск по сайту:

Как настроить виртуальные хосты nginx (серверные блоки) в CentOS 6


Статус: устарело

В этой статье рассматривается версия CentOS, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением CentOS 6, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию CentOS.

Причина:

См. вместо этого:

Следующее руководство DigitalOcean может быть полезным, так как в нем описывается настройка серверных блоков Nginx на сервере CentOS 7:

  • Как настроить серверные блоки Nginx в CentOS 7

О виртуальных хостах

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

вступление

Убедитесь, что на вашем VPS установлен nginx. Если это не так, вы можете быстро установить его, выполнив 2 шага.

Установите репозиторий EPEL:

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

Установить нгинкс

yum install nginx

Шаг первый — создайте новый каталог

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

Это расположение будет вашим корнем документа в файле виртуальной конфигурации Nginx позже. Добавляя -p к строке кода, команда автоматически создает всех родителей для нового каталога.

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

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

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

Шаг второй — предоставление разрешений

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

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

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

sudo chmod 755 /var/www

Теперь вы все сделали с разрешениями.

Шаг третий — создайте страницу

Нам нужно создать новый файл с именем 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>

Сохранить и выйти

Шаг четвертый — настройте виртуальный хост

Следующим шагом будет вход в сам конфигурационный файл nginx.

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

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

#
# 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;
    }
}

Сохранить и выйти.

Шаг пятый — перезапустите nginx

Мы внесли много изменений в конфигурацию. Перезапустите nginx и сделайте видимыми изменения.

/etc/init.d/nginx restart

Необязательный шаг шесть — настройка локальных хостов

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

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

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

Предполагая, что у вас есть доступ администратора (полученный путем ввода su и ввода правильного пароля), вот как вы можете настроить локальные хосты.

На локальном компьютере введите:

nano /etc/hosts

Вы можете добавить в этот файл сведения о локальных хостах, как показано в примере ниже. Пока есть строка с IP-адресом и именем сервера, направление вашего браузера, скажем, на example.com даст вам все данные виртуального хоста для соответствующего 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 

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

Шаг седьмой — посмотрите на свой виртуальный хост в действии

После того, как вы закончите настройку своего виртуального хоста, вы сможете увидеть, как он выглядит в Интернете. Укажите в браузере свое доменное имя или IP-адрес, и вы увидите, что на странице отображается сообщение «Успешно — вы настроили виртуальный хост».

Добавление дополнительных виртуальных хостов

Чтобы создать дополнительные виртуальные хосты, вы можете просто повторить описанный выше процесс, стараясь каждый раз настраивать новый корень документа с соответствующим новым доменным именем. Затем просто скопируйте и вставьте новую информацию о виртуальном хосте в файл конфигурации 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;
    }
}