Мне нужно обслуживать большое количество веб-сайтов на одном компьютере. Мне нужно будет иметь возможность динамически добавлять и удалять веб-сайты.
Внутренне веб-сервер должен думать, что запрос пришел от виртуального хоста.
Можно ли использовать nginx спереди, который будет обрабатывать запросы в форме: example.com/vhost1/some/path и переписывать их на: vhost1.example.com/some/path
Могу ли я сделать это без настройки DNS для vhost1.example.com?
Нужно ли мне добавить vhost1.example.com к имени хоста на машине?
Спасибо
Если вы хотите протестировать клиентские подключения к vhost project1.example.com, добавьте его в файл / etc / hosts (или его эквивалент в Windows) на клиенте:
10.87.42.22 project1.example.com
А затем попробуйте загрузить URL-адрес в свой браузер.
Вы можете добавить домен с подстановочными знаками * .example.com (это возможно в BIND, не знаю о других DNS-серверах) и настроить nginx vhosts project1.example.com, project2.example.com ... Таким образом, вы не необходимо обновлять DNS для каждого добавленного поддомена!
Я запускаю djbDNS в своей внутренней сети (и ранее делал это для более общедоступных сайтов) с заданным .TLD и подстановочным знаком - так что *.localtest
будет разрешаться в заданный IP-адрес, который подхватит Apache или thttpd (с помощью Apache VirtualDocumentRoot
). Вы могли бы сделать то же самое и с nginx (обслуживать сайт на основе HTTP_HOST
).
Я не совсем понимаю, чего вы пытаетесь достичь. Если это всего лишь внутреннее переназначение, вы должны иметь возможность использовать ряд методов, не связанных с DNS, для его изменения. Единственная причина, по которой вам может потребоваться изменить записи DNS, заключается в том, что это связано с перенаправлением клиентов из example.com к vhost.example.com вместо.