У меня есть несколько виртуальных хостов nginx, все указывают на localhost. Прямо сейчас они имеют одинаковые имена разные порты localhost:8080 , localhost:8081 . Вместо этого я хотел бы, чтобы у них были одинаковые имена портов site1:8080 , site2:8080 .

Однако для этого необходимо добавить новые записи в /etc/hosts/ для каждого сайта:

127.0.0.1 site1 site2 site3 site4

Вместо этого есть ли способ создать домен .local чтобы все, что заканчивалось на этом, было разрешено в localhost? Таким образом, я могу сделать site1.local:8080 , site2.local:8080 и не нужно каждый раз обновлять /etc /hosts. Что-то вроде

127.0.0.1 .local

К сожалению, это не похоже на работу.

Какими способами я мог бы заставить его работать, не настраивая что-то вроде dnsmasq?

Я слышал о http://readme.localtest.me/, который позволяет делать это с site1.localtest.me:8080 но я много работаю без подключения к интернету, поэтому в идеале я бы использовал то, что не требует онлайн для разрешения до 127.0.0.1.

Что-нибудь, что я мог сделать с /etc/hosts , /etc/resolv.conf или что-то еще, что могло бы работать для настройки домена .local?

1 ответ1

1

Вы не можете использовать подстановочные знаки в /etc/hosts . Там нет способа сделать это без DNS-сервера.

У вас есть два варианта:1) Поместите каждый нужный хост в /etc/hosts (вы можете автоматизировать его с помощью специального скрипта оболочки)

2) Просто используйте собственный локальный DNS для этой задачи. Я бы порекомендовал dnsmasq.

Вам просто нужно использовать параметр --address=/local/127.0.0.1 в dnsmasq, где "local" - это имя вашего домена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .