Nginx多端口虚拟主机配置SSL

1.情景描述

一台Nginx主机,想要通过多个端口同一个域名配置多个虚拟主机同时支持https。

2.配置方式

2.1、将域名对应的SSL证书存放到一个配置文件夹中。

2.2、根据自己需求可以在nginx/conf/conf.d 目录下新建一个以.conf后缀结尾的配置文件,等同于nginx.conf的一个子文件,语法格式与nginx.conf一样。

2.3、每一个虚拟主机监听不同的SSL端口(默认端口为443)。

3.配置示例

3.1、编辑nginx.conf配置文件包含conf.d目录下的子配置文件。

3.2、子配置文件配置如下:


server{
	listen 8881;
	listen 8841 ssl;
	server_name www.xxx.com;
	ssl on;
	ssl_certificate cert/www.xxx.com.pem;
	ssl_certificate_key cert/www.xxx.com.key;
	ssl_session_timeout 5m;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_prefer_server_ciphers on;
	location / {
		root /usr/local/nginx/html/8881/;
		index index.html.index.php;
	}

}


server{
	listen 8882;
	listen 8842 ssl;
	server_name www.xxx.com;
	ssl on;
	ssl_certificate cert/www.xxx.com.pem;
	ssl_certificate_key cert/www.xxx.com.key;
	ssl_session_timeout 5m;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_prefer_server_ciphers on;
	location / {
		root /usr/local/nginx/html/8882;
		index index.php,index.html;
	}
}

配置完成后重启nginx,后 使用https直接访问对应的虚拟主机+端口即可。

声明:当然一定有更好的配置方式,这只是其中的一种,不完美之后望指教。

你可能感兴趣的:(Nginx)