Nginx позволяет обрабатывать запросы к нескольким виртуальным серверам, которые де-факто расположены на одном физическом сервере. На ваших playground-серверах доступны 2 имени:

  • IP-адрес, например 10.7.223.89
  • Доменное имя pclinux223-89.yar.fruct.org

Задача

Настройте NGinx так, чтобы по разным доменным адресам он показывал различные статические приветствия.

Подход к решению

  • Поставить Nginx. Удостовериться, что он доступен как по IP-адресу, так и по доменному имени.
  • Создать каталоги /var/www/first и /var/www/second. Разместить в каждом из них файл index.html, в котором выводить сообщения «Вы видите первый сайт» и «Вы видите второй сайт» соответственно.
  • Скопировать настройки сайта по умолчанию в ip-address и domain-name.
    • Перейти в каталог с конфигурациями сайтов Nginx /etc/nginx/sites-available
    • Скопировать файл default в ip-address и domain-name
  • Настроить новые сайты на предоставление информации из созданных каталогов.
    • Исправить содержимое созданных файлов
      • Исправить root, чтобы указывал на созданный каталог.
      • В server_name указать номенное имя сервера.
      • В одном из конфигурационных файлов убрать default_server из настройки listen.
    • Убрать ссылку на default из каталога /etc/nginx/sites-enabled
    • Добавить ссылки на файлы ip-address и domain-name в каталог /etc/nginx/sites-enabled.
  • Применить настройки конфигурации, перезапустив nginx.

Пример решения можно посмотреть по http://10.7.223.38 и http://pclinux223-38.yar.fruct.org.

Проброс запросов на внутренний сервер

Зачастую Nginx стоит как первый сервер организации, который служит своеобразным окном для других веб-служб, которые находятся в организации. То есть у вас есть 1 публичный веб-сервер и несколько серверов в приватном пространстве. Размещение веб-серверов на различных машинах зачастую оправдано их назначением и разделением ответственности между обслуживающими организациями.

Давайте сэмитируем такую работу.

  1. Сначала добавьте в файл index.html, который показывается при переходе по IP-адресу, идентификацию сервера, на котором запущен данный сервер. Таким образом при открытии страницы в браузере для сервера 10.7.223.89 будет показываться сообщение: «Вы видите данные с сервера 89».
  2. Исправьте конфигурацию сервера domain-name так, чтобы она не показывала данные из файловой системы, а проксировала вызовы на другой сервер. Другим сервером будет сервер «Соседа справа».

    Для этого необходимо:

    • Убрать указание местоположения статических файлов.
    • Исправить определение location / на работу в режиме обратного прокси:

      location / {
       include proxy_params;
       proxy_pass http://10.7.223.56;
      }