nginx,将 http 重定向到 https 无法按预期工作

nginx,将 http 重定向到 https 无法按预期工作

我的目的是将所有请求重定向到https://裸域和等效域的前缀 URL www.*。该acme-challengeURL 将被排除。

我已尝试使用以下配置,并从裸域正确重定向,但是当我访问带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/;
}

相关内容