Nginx强制https访问

折腾 SunYF 5年前 (2020-05-28) 1435次浏览 已收录 0个评论 扫描二维码

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服务,即可还原。


孙艺峰的日志 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Nginx强制https访问
喜欢 (0)
[13917237775@qq.com]
分享 (0)
关于作者:
Nothing to say
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址