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

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


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

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

  • Обновите Ubuntu до версии 14.04.
  • Обновление Ubuntu 14.04 до Ubuntu 16.04
  • Перенесите данные сервера в поддерживаемую версию.

Причина:

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

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

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

Настраивать

Шаги, описанные в этом руководстве, требуют, чтобы пользователь имел привилегии root на виртуальном частном сервере. Вы можете увидеть, как это настроить, в учебнике по начальной настройке сервера в шагах 3 и 4. Кроме того, если я буду ссылаться на пользователя на шаге, я буду использовать имя www. Вы можете реализовать любое имя пользователя, которое вам подходит.

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

sudo apt-get install nginx

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

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

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

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

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

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

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

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

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

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

sudo chmod 755 /var/www

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

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

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

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

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

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

nginx предоставляет нам макет для этого файла в каталоге, доступном для сайтов (/etc/nginx/sites-available), и нам просто нужно скопировать текст в новый пользовательский файл:

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

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

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

 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\, чтобы весь трафик, входящий через этот порт, направлялся на сайт
  • Измените корневое расширение, чтобы оно соответствовало каталогу, созданному на первом этапе. Если корень документа указан неправильно или отсутствует, вы не сможете настроить виртуальный хост.
  • Измените имя сервера на доменное имя, одобренное DNS, или, если у вас его нет, вы можете использовать свой IP-адрес.

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

Последним шагом является активация хоста путем создания символической ссылки между каталогом, доступным для сайтов, и каталогом, поддерживающим сайты. В apache для этого используется команда \a2ensite\ — у nginx нет эквивалентного ярлыка, но, тем не менее, это простая команда.

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

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

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

Шаг шестой — перезапустите nginx

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

sudo service nginx restart

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

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

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

Если вы работаете на Mac или Linux, получите доступ к пользователю root (su) на компьютере и откройте файл hosts:

nano /etc/hosts 

Если вы работаете на компьютере с Windows, вы можете найти инструкции по изменению хост-файла на сайте Microsoft.

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

Он должен быть чем-то похож на мой handy

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

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

Узнать больше

После того, как вы настроили свои виртуальные хосты, вы можете перейти к установке FTP-сервера.