Nginx SSL 通配符错误 500

Nginx SSL 通配符错误 500

我的问题是:转到 https://{www,whatever}.mysite.com 出现错误 500。转到http://mysite.com工作正常

upstream my_server {
  server unix:/webapps/server/run/gunicorn.sock fail_timeout=0;
}

server {
    listen      80;
    server_name site.com www.site.com;
    return      301 https://$server_name$request_uri;
}

server {

    listen   443;
    server_name site.com *.site.com;

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl.crt;
    ssl_certificate_key /etc/nginx/ssl/ssl.key;


   location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        if (!-f $request_filename) {
            proxy_pass http://my_server;
            break;
        }
    }

}

请指教。

答案1

改变server_name site.com *.site.com;

server_name .site.com;

根据nginx 文档

通配符名称

形式为“.example.org”的特殊通配符名称可用于匹配精确名称“example.org”和通配符名称“*.example.org”。

答案2

听起来问题可能出在处理额外域的后端。

在将请求传递给后端之前,也许对原始域进行硬编码?

    proxy_set_header Host site.com;

相关内容