我的问题是:转到 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;