Nginx配置http跳转https 强制https访问

栏目: 服务器 · Nginx · 发布时间: 5年前

内容简介:最近上线了好几个项目,同时也申请了相应的SSL证书,不过发现了一个问题,用户在浏览器直接输入域名的时候,浏览器默认访问的是http站点,然而我们的网站只支持https访问,所以就访问不了咯。其实可以在nginx全局配置里面把所有访问重定向到https,不过服务器有些站点是提供http服务的,所以只能每个站点分别配置。根据搜索引擎找到的资料,本文总结了三种配置方法,有需要的朋友可以选择中意的使用。

前言

最近上线了好几个项目,同时也申请了相应的SSL证书,不过发现了一个问题,用户在浏览器直接输入域名的时候,浏览器默认访问的是http站点,然而我们的网站只支持https访问,所以就访问不了咯。

其实可以在nginx全局配置里面把所有访问重定向到https,不过服务器有些站点是提供http服务的,所以只能每个站点分别配置。

根据搜索引擎找到的资料,本文总结了三种配置方法,有需要的朋友可以选择中意的使用。

nginx的rewrite方法

说明

这应该是大家最容易想到的方法,将所有的http请求通过rewrite重写到https上即可。

配置

server {
    listen  192.168.1.111:80;
    server_name test.com;

    rewrite ^(.*)$  https://$host$1 permanent;
}

搭建此虚拟主机完成后,就可以将http://test.com的请求全部重写到https://test.com上了

nginx的497状态码

错误代码497

497 - normal request was sent to HTTPS

解释:当此虚拟站点只允许https访问时,当用http访问时nginx会报出497错误码

说明

利用error_page命令将497状态码的链接重定向到https://test.com这个域名上

配置

server {
    listen       192.168.1.11:443;  #ssl端口
    listen       192.168.1.11:80;   #用户习惯用http访问,加上80,后面通过497状态码让它自动跳到443端口
    server_name  test.com;
    #为一个server{......}开启ssl支持
    ssl                  on;
    #指定PEM格式的证书文件 
    ssl_certificate      /etc/nginx/test.pem; 
    #指定PEM格式的私钥文件
    ssl_certificate_key  /etc/nginx/test.key;

    #让http请求重定向到https请求 
    error_page 497  https://$host$uri?$args;
}

index.html 刷新法

说明

上述两种方法都需要服务器做计算处理,均会耗费服务器的资源。网页刷新法是从百度那里学来的。

我们用curl访问baidu.com试一下,看百度的公司是如何实现baidu.com向www.baidu.com的跳转。

Nginx配置http跳转https 强制https访问

可以看到百度很巧妙的利用meta的刷新作用,将baidu.com跳转到www.baidu.com.因此我们可以基于http://test.com的虚拟主机路径下也写一个index.html,内容就是http向https的跳转

index.html网页内容

<html>
<meta http-equiv="refresh" content="0;url=https://test.com/">
</html>

站点配置

在服务器的配置里添加一个http站点配置用来提供刚才那个 index.html 的访问服务

server {
    listen 80;
    server_name test.com;

    location / {
                #index.html放在虚拟主机监听的根目录下
        root /srv/www/http.test.com/;
    }
        #将404的页面重定向到https的首页
    error_page  404 https://test.com/;
}

参考资料

https://blog.csdn.net/wzy_1988/article/details/8549290

About

了解更多有趣的操作请关注我的微信公众号:DealiAxy

每一篇文章都在我的博客有收录:blog.deali.cn

Nginx配置http跳转https 强制https访问


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Remote

Remote

Jason Fried、David Heinemeier Hansson / Crown Business / 2013-10-29 / CAD 26.95

The “work from home” phenomenon is thoroughly explored in this illuminating new book from bestselling 37signals founders Fried and Hansson, who point to the surging trend of employees working from hom......一起来看看 《Remote》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具