Https越来越普及了,然而常常用户打开网站默认使用的还是80端口。出现这种情况是因为服务器同时开启了80(http)和443(https)两个端口和服务,而浏览器的设计存在一个缺陷:当用户访问一个网站的时候没有检查其443端口,而是直接访问其默认的80端口了。
如果你同时配置了Http和Https服务的话,为了提高兼容性,你可以忽略本篇文章,什么也不做,然而,一旦你想要避免用户通过http访问站点,有什么好办法呢?在这里,我们推荐您做一个301重定向,并把用户访问的地址参数传递给Https协议。
首先我们打开nginx的配置文件,在Server段添加下面的语句:
return 301 https://$server_name$request_uri;
示例代码:
server { listen 80; server_name example.com ; return 301 https://$server_name$request_uri; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/example.com; ... ... }
使用以上方法,当用户尝试通过80端口访问网站内容时,会被重定向到Https协议。
你必须成功配置了Https协议和服务器证书,才能使用此功能,不然会导致网站无法访问!
注释掉或者删除以上语句,并重启Nginx服务,即可还原。