我的目的是将所有请求重定向到https://
裸域和等效域的前缀 URL www.*
。该acme-challenge
URL 将被排除。
我已尝试使用以下配置,并从裸域正确重定向,但是当我访问带www.
前缀的域时,系统会显示默认服务器,而不是重定向到端口 443 上的服务器并从 https 服务器根目录提供服务。
为什么是这样?
server {
listen 80;
listen [::]:80;
server_name example.org www.example.org;
location '/.well-known/acme-challenge/' {
root /var/www/challenges;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example.org www.example.org;
ssl_certificate /etc/nginx/ssl/example.org.pem;
ssl_certificate_key /etc/nginx/ssl/example.org.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
ssl_session_cache shared:SSL:50m;
ssl_dhparam /etc/nginx/ssl/dhparams.pem;
ssl_prefer_server_ciphers on;
root /var/www/example.org/;
}