我有一个带有虚拟服务器设置的配置文件,它在端口443上运行,用于ssl。我也希望这个虚拟服务器能够处理端口80上的非ssl流量。
我希望能够做到以下几点,但它似乎无法发挥作用。
server {
listen 443 ssl;
listen 80;
server_name example.com;
...
}
看起来这些设置下面的ssl选项会导致非ssl流量出现问题。
答案 0 :(得分:16)
是的,当然。
server {
listen 80;
listen 443 ssl;
# force https-redirects
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
}
这是我的帖子,名称" Nginx Configuration for HTTPS"其中包含更多信息。
答案 1 :(得分:15)
删除ssl on;
指令。
ssl
标志正是您所需要的。
请参阅http://nginx.org/en/docs/http/configuring_https_servers.html#single_http_https_server