您现在的位置是:网站首页>文章详情文章详情

Django部署中使用https协议及其http强制跳转https

inlike2019-06-07 原创文章 浏览(2836) 评论(1) 喜欢(46)

简介https协议是目前大都数网站都使用的安全协议,这不禁是数据传输中的保障,更是网站优化中的重要一环,因为https协议在搜索引擎眼中比http协议更加的可靠,采用https协议的网站拥有更高权重;下面就分享在Django+nginx+uswgi部署流程中采用https协议

https协议是目前大都数网站都使用的安全协议,这不禁是数据传输中的保障,更是网站优化中的重要一环,因为https协议在搜索引擎眼中比http协议更加的可靠,采用https协议的网站拥有更高权重;下面就分享在Django+nginx+uswgi部署流程中采用https协议。

image.png

首先要清楚使用https协议可以通过两中方案实现,一种是在nginx上验证https,另一个是在uswgi上验证https,在uswgi官方文档上有关于uwsgi使用https的相关说明,这里就不介绍uwsg验证https了;本篇介绍简单、直观的nginx验证https协议。

要让网站通过https协议访问,那么我们首先需要证书,如腾讯云、阿里云都会提供免费有效期的证书,也可以自己生成证书,反正不管怎么样首先搞到证书。

image.png

如腾讯云下载证书后解压,文件下有nginx文件夹,这里面就是nginx需要需要的证书,然后我们把这个文件夹上传到服务器/home路径下。

image.png

接着重新编辑一下nginx的配置文件:

server {
        listen 443;  # 监听443
        server_name www.likeinlove.com likeinlove.com

        charset utf-8;
        ssl on;
        ssl_certificate /home/key_dir/1_www.likeinlove.com_bundle.crt;
        ssl_certificate_key /home/key_dir/2_www.likeinlove.com.key;

        # Allow file uploads
        client_max_body_size 50M;

        location /static {
            alias /home/newblog/static/;
        }
        location /media {
            alias /home/newblog/media/;

        }

        location = /favicon.ico {
            rewrite (.*) /static/favicon.ico;
        }
        location = /robots.txt {
            rewrite (.*) /static/robots.txt;
        }

        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:800000;
        }

与正常的http配置相比变化的只是监听端口443,以及开启了ssl验证和指定了证书的路径,除此之外没有其他特殊的变化,配置完后重启nginx即可在https下访问。

image.png

虽然可以在https下访问了,但是在http下无法访问,所以我们还需要在nginx中配置http重定向到https协议,在nginx中增加一个server配置:

server {
        listen 80;
        server_name www.likeinlove.com likeinlove.com;

        return 301 https://$server_name$request_uri;
}

除了listen、server_name外其他字段是固定的,配置完后重启nginx即可在浏览器中通过http访问我们的网站了。

image.png


很赞哦! ( 46)
    《Python实战进阶》
    None
    None
    夏至已深

站点信息

  • 建站时间:2019-5-24
  • 网站程序:like in love
  • 主题模板《今夕何夕》
  • 文章统计:104条
  • 文章评论:***条
  • 微信公众号:扫描二维码,关注我们
  • 个人微信公众号