Рейтинг:1

Как обрабатывать запросы к несуществующим поддоменам с помощью Nginx

флаг in

Вот моя конфигурация Nginx для моего домена пример.com который обслуживает тривиальный статический веб-сайт.

сервер {
    корень /var/www/example.com;

    индекс index.html index.htm index.nginx-debian.html;

    имя_сервера example.com www.example.com;

    место расположения / {
        try_files $uri $uri/ =404;
    }

    слушать [::]:443 ssl ipv6only=on; # под управлением Certbot
    слушать 443 ssl; # под управлением Certbot

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # под управлением Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # под управлением Certbot
    включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
}

сервер {
    слушать 80;
    слушать [::]:80;
    имя_сервера example.com www.example.com;
    вернуть 301 https://$host$request_uri;
}

Как настроить Nginx для возврата 404 всякий раз, когда я перехожу к поддомену, такому как asdf.example.com? Теперь я смотрю на ту же страницу, что и пример.com.

Я установил запись A с подстановочным знаком для своего домена, поэтому я ожидаю, что все запросы заканчиваются на пример.com найти мой сервер. Должен ли я удалить подстановочный знак или я могу обрабатывать эти запросы к поддоменам с помощью Nginx?

Ivan Shatsky avatar
флаг gr
Чтобы не повторяться - проверьте [это] (https://stackoverflow.com/a/69825652/7121513) ТАК ответьте, я думаю, вы найдете там всю необходимую информацию.
Рейтинг:0
флаг cn

Nginx имя сервера конфигурация позволяет использовать регулярные выражения или даже более простые * подстановочный знак, см. https://nginx.org/en/docs/http/ngx_http_core_module.html#имя_сервера

Таким образом, любое из этих двух должно соответствовать любому имени (не лучше соответствует другому блоку)

имя_сервера *.example.com
имя_сервера ~^.+\.example\.com$

(~ требуется для использования регулярного выражения).

Вы даже можете захватить часть имени и использовать его в последующих директивах конфигурации. В приведенной выше ссылке на документацию есть примеры этого.

И вам действительно нужен подстановочный знак DNS, иначе трафик не достигнет вашего веб-сервера (или, если нет подстановочного знака DNS, вам нужны определенные записи для имен, которые вы хотите разрешить, независимо от их количества, и при этом сохранить конфигурацию «подстановочного знака»). Nginx)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.