我们为我们的网站提供安全且不安全的域名,例如secure.xyz.com和xyz.com

我使用以下链接使单个服务器处理端口80和443流量 .

http://nginx.org/en/docs/http/configuring_https_servers.html#single_http_https_server

server {
listen 80;
listen 443 ssl;
server_name secure.xyz.com xyz.com;
....
ssl_certificate secure.xyz.com.crt;
ssl_certificate_key secure.xyz.com.key;
...
}

除了$ _SERVER的变量'SERVER_NAME'设置为'secure.xyz.com'之外,所有工作都正常 . 因此,该主机名出现在具有“http”的非安全页面上,例如“http://secure.xyz.com” .

我的疑问是:

  • Nginx总是从配置中选择第一台服务器......无论客户请求了什么? (并传递给代理(php-fpm)?) .

  • 我们有很多规则,所以如果我们创建两个独立的服务器(如下所示),我是否需要在两个地方复制规则?有没有可维护的方法,比如'include /common_rules.conf'?我尝试在文件中使用“位置”规则(仅限),我也尝试使用'server'封装位置规则,但它不起作用 .

服务器{listen 443; server_name secure.xyz.com; ssl on; ssl_certificate secure.xyz.com.crt; ...包括common_rules.conf; ===> ??? }

服务器{listen 80; server_name xyz.com; ...包括common_rules.conf; ===> ??? }

任何帮助都非常感谢 .