Назад | Перейти на главную страницу

Ограничить доступ к субдоменам на NGINX

у меня есть домен, он называется mydomain.com, он работает на сервере NGINX. я добавил новую конфигурацию на sites-enabled для subdomain.mydomain.com, и это сработало.

но когда я получаю доступ, whatever.mydomain.com, wildcard.mydomain.com, NGINX не показывает 404, но выполняет такую ​​конфигурацию, как mydomain.com.

как ограничить доступ к поддомену, только для доступной конфигурации на сайтах с включенным доступом?

Вы можете настроить серверный блок «поймать все» следующим образом:

server {
  listen 80 default_server;
  server_name _;
  return 404; #alternative: return 444;
}

Если вы хотите ловить только поддомены на mydomain.com, вы можете указать server_name *.mydomain.com вместо.

Как правило, сопоставление имени сервера выполняется nginx в следующем порядке:

  1. полное совпадение
  2. самое длинное совпадение с префиксом *
  3. самое длинное совпадение с суффиксом *
  4. первое подходящее регулярное выражение в конфигурации
  5. поймать весь блок
  6. первый блок сервера, найденный в конфиге

Nginx не смог найти совпадений для вашего поддомена и, следовательно, достиг точки 6 и использовал единственный существующий блок.

Подробнее о возможностях server_name можно найти здесь: http://nginx.org/en/docs/http/server_names.html