NGINX中虚拟主机上的SSL

时间:2015-06-17 15:06:43

标签: ssl nginx

我是NGINX的新手,我有一个案例,我需要调用一个有两个URL的网站,一个在HTTP&其他在HTTPS上。为了测试这一点,我创建了一个可通过端口8080上的NGINX访问的虚拟站点,以及两个虚拟主机www.mytest1.local.com& www.mytest2.local.com,我只需通过https协议访问www.mytest1.local.com,只需通过http协议访问www.mytest2.local.com。这是nginx.conf文件的快照: -

http{
   server {
     listen 443;
     server_name www.mytest1.local.com;
     ssl on;
     ssl_certificate C:\\Users\\sinhasu\\Downloads\\nginx-1.8.0\\SSL\\server.crt;
    ssl_certificate_key C:\\Users\\sinhasu\\Downloads\\nginx-1.8.0\\SSL\\server.key;
    location / {
    proxy_pass http://localhost:8080;
  }
 }

 server {
server_name www.mytest2.local.com;
location / {
    proxy_pass http://localhost:8080;
 }
}

server {
 listen 8080;
     location / {
    root C:\\Users\\sinhasu\\Downloads\\nginx-1.8.0\\testdoc;
 }
 }

}

但是这些配置似乎并没有正常运行,这两个虚拟主机www.mytest1.local.com& www.mytest2.local.com正在对http以及https协议做出回复,而我希望mytest1网址仅接受https,mytest2网址仅接受http protocol

如果我在配置部分遗漏了某些内容,请告诉我。

1 个答案:

答案 0 :(得分:0)

这完全符合您的要求,您在8080上也可以访问http的事实是nginx的默认行为。第二个服务器没有监听,因此默认为端口80,如果没有指定监听指令,它甚至可能默认为443。