Я установил DNS-сервер dnsmasq на экземпляр ubuntu и добавил доменное имя в конфигурации. Он работает нормально, за исключением того, что он разрешает неизвестные хосты так же, как и для доменного имени.
Вот мои конфигурации:
/etc/dnsmasq.conf
# domain name
domain=example.com
local=/example.com/
address=/example.com/127.0.0.1
listen-address=127.0.0.1
/ etc / hosts
127.0.0.1 localhost
172.217.16.195 www.google.com
10.10.1.x testhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Я установил сервер nginx на "пример", поэтому я ожидаю увидеть страницу по умолчанию, когда я отправлю GET-запрос на порт 80, и это работает, как и планировалось:
curl example.com
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
На экземпляре "testhost" я установил простой сервер, который возвращает "hello world", он тоже работает нормально.
curl testhost.example.com
hello world
Однако, когда я запрашиваю несуществующий хост, он перенаправляется на «примерный» хост: curl random-string-asfasfasfasf.example.com
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
Как я могу предотвратить такое поведение?
Удалить address=
линию и поставить example.com
хосты, которые вы хотите разрешить /etc/hosts
.