记录一次配置http跳转https的过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一次配置http跳转https的过程相关的知识,希望对你有一定的参考价值。

公司最近搞了一个数据运营平台,这个平台会以web界面的形式把各个数据展示出来,这个项目是我们一个经理的重点关照项目。把平台模块部署完毕并且启动之后,又把这个平台服务器的外网IP绑定到alkaid.lechange.com这个域名上,在浏览器里输入https://alkaid.lechange.com ,就看到了前端同行们写的网页。


但是我们的霸气经理说这样不行,说要更多要求更高标准更好体验,于是乎提出一个需求就是:在输入alkaid.lechange.com的时候会自动跳转到https://alkaid.lechange.com 。


既然如此,我们就在nginx上原有的nginx.conf里补充几个配置文件:

        #include upstream
        include upstream.conf;
        # include servers
        include alkaid.conf;
        include alkaid-https.conf;

这样在执行nginx.conf的时候,就会调用upstream.conf、alkaid.conf和alkaid-https.conf,我们主要看一下这三个文件。


alkaid.conf文件如下:

server {
        listen 80;
        server_name *.lechange.com;
        proxy_buffering off;
        location / {
                rewrite ^/ https://alkaid.lechange.com permanent;
                client_max_body_size 100m;
        }
}


这里我们监听了80端口,下面那个 "client_max_body_size 100m" 是用来设定nginx+php上传文件的大小,这里规定是100m,这个可以写进nginx.conf里,如果有对上传文件方面感兴趣,可以看 http://www.cnblogs.com/zhwl/archive/2012/09/18/2690714.html  。


再来看看alkaid-https.conf,如下:

server {
        listen 10000;
        server_name *.lechange.com;
        proxy_buffering off;
        location / {
                proxy_pass http://alkaid_backend;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_redirect     off;
        }
}

这里监听了10000端口,location写的是http://alkaid_backend  ,这个alkaid_backend是啥东西?


这个时候我们就需要看一下upstream.conf,里面内容是:

upstream alkaid_backend {
        server   X.X.X.X:JQK;
        check interval=5000 rise=2 fall=5 timeout=1000 type=tcp default_down=false;
}

X.X.X.X是模块服务器的内网IP地址,而JQK是模块服务器的模块端口,这里要根据实际的情况来写。可见alkaid_backend对应的就是模块服务器和它的端口,下面是检查间隔等等数值。


现在我们启动nginx,然后把nginx的外网地址绑定去alkaid.lechange.com这个域名,在浏览器里输入alkaid.lechange.com,就会达到自动跳转的目的了!


这里要额外多说一下,我们这里设定了80的配置文件也设置了443的文件,但是这俩文件的转发过程却不同:alkaid-https.conf文件把443的请求转向了平台模块服务器的服务,而alkaid.conf文件把凡是从80端口进来的请求直接全部永久重定向到https://alkaid.lechange.com  ,但是这个alkaid.lechange.com还是会去访问平台模块服务器的服务,也就是说alkaid.conf文件多了一步重定向。


本文出自 “生活就是等待戈多” 博客,请务必保留此出处http://chenx1242.blog.51cto.com/10430133/1941035

以上是关于记录一次配置http跳转https的过程的主要内容,如果未能解决你的问题,请参考以下文章

中科三方:SSL证书配置过程中常见问题盘点

如何让http自动跳转https

如何使http请求强制跳转到https

【nginx】最优雅的Nginx配置HTTP跳转HTTPS方法

http实现自动跳转https的设置方法

记录一次升级https走过的坑