Как удалить неконфигурированные поддомены без жесткого кода с помощью nginx?

#nginx #web #subdomain

Вопрос:

У меня есть несколько приложений, запущенных на моем VPS, Каждое с поддоменом и office.domain.com drive.domain.com т. Д., А также статический веб-сайт для основного домена.

У меня есть подстановочный сертификат для https, и поэтому я пытаюсь настроить свой nginx так, чтобы было как можно проще добавлять новые поддомены для моих проектов.

Тем временем я хочу перенаправить каждый поддомен, который не настроен, на основной домен без www .

Я также пытаюсь жестко закодировать как можно меньше вещей, особенно основной домен.

На данный момент моя конфигурация выглядит следующим образом :

 # Main configuration
# Sets https and serve static website
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name _;

        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

        return 301 https://$host$request_uri;
}

server {
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;

        server_name     _ *._;

        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

        ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;        
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

        root /home/hentaishiroyuki/domain.com/www;
        index index.html;

        location / {

        }
}
 

и для каждого приложения я создаю новый файл конфигурации в виде :

 server {
    server_name code.*;

    listen 443 ssl;

    location / {
        proxy_pass http://localhost:8080/;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection upgrade;
        proxy_set_header Accept-Encoding gzip;
    }
}
 

Прямо сейчас он перенаправляет каждый неконфигурированный поддомен первого уровня в основной домен, но без удаления поддомена, и он не перенаправляет поддомены 2 уровней.