如何使用 nginx 在没有硬编码的情况下删除未配置的子域?

我的 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+ 级子域。

liaozhongfa 回答:如何使用 nginx 在没有硬编码的情况下删除未配置的子域?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1645.html

大家都在问