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