我最近安装了LetsEncrypt SSL证书,它在我的主域上工作得很好,但我也有其他子域,它们被设置为虚拟主机。然而,所有到子域的流量现在都被重定向到https,这导致浏览器抱怨隐私。
我的主域nginx配置如下:
server { │
listen 80; │
server_name domain.com www.domain.com; │
return 301 https://$server_name$request_uri; │
} │
│
server { │
# Basic configuration │
listen 443 ssl; │
server_name domain.com www.domain.com; │
passenger_enabled on; │
passenger_app_env development; │
root /home/user/path_to_app/public; │
│
# Required for LetsEncryptSSL certificate │
location ~ /.well-known { │
allow all; │
} │
│
# Include SSL config │
include snippets/ssl-domain.com.conf; │
include snippets/ssl-params.conf; │
} 我的子域配置是这样的:
server { │
#listen 80 default_server; │
server_name app1.domain.com; │
passenger_enabled on; │
passenger_app_env development; │
root /home/app1/app1/public; │
} 发布于 2016-12-06 20:58:30
我认为唯一的机会就是在第一个括号中将server_name定义为正则表达式。也就是说,像这样的东西
server {
listen 80;
server_name ^(www\.domain\.com|domain\.com)$;
return 301 https://$server_name$request_uri;
}http://nginx.org/en/docs/http/server_names.html
https://stackoverflow.com/questions/40995050
复制相似问题