Поддержка нескольких доменов на одном сервере
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
- Перейти в каталог с конфигурациями сайтов Nginx
- Настроить новые сайты на предоставление информации из созданных каталогов.
- Исправить содержимое созданных файлов
- Исправить
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 публичный веб-сервер и несколько серверов в приватном пространстве. Размещение веб-серверов на различных машинах зачастую оправдано их назначением и разделением ответственности между обслуживающими организациями.
Давайте сэмитируем такую работу.
- Сначала добавьте в файл
index.html
, который показывается при переходе по IP-адресу, идентификацию сервера, на котором запущен данный сервер. Таким образом при открытии страницы в браузере для сервера 10.7.223.89 будет показываться сообщение: «Вы видите данные с сервера 89». -
Исправьте конфигурацию сервера
domain-name
так, чтобы она не показывала данные из файловой системы, а проксировала вызовы на другой сервер. Другим сервером будет сервер «Соседа справа».Для этого необходимо:
- Убрать указание местоположения статических файлов.
-
Исправить определение location / на работу в режиме обратного прокси:
location / { include proxy_params; proxy_pass http://10.7.223.56; }