我是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
。
如果我在配置部分遗漏了某些内容,请告诉我。
答案 0 :(得分:0)
这完全符合您的要求,您在8080上也可以访问http的事实是nginx的默认行为。第二个服务器没有监听,因此默认为端口80,如果没有指定监听指令,它甚至可能默认为443。