使用 Django 和 Nginx 搭建个人博客,配置HTTPS

Jan. 3, 2021, 6:42 p.m.

最近忙毕业设计,为了Prototype展示,使用了Django进行展示。毕竟只是展示,求快,Python和Django的确是非常节省时间的,相比较Java的Web框架。糟心的2020年结束,我也把之前的摄影想捡起来,2021年相对来说,我会轻松很多,可以把时间放到其他感兴趣的地方。然后把Sigma 35mm F1.4 Art卖了,换了 Sony 35mm F1.4 ZA。这个主要是因为Sigma这颗头的对焦性能,实在不能令人满意。在外景人像拍摄,经常跑焦,后期在电脑上看也追悔莫及。同时,购买了Sony 55mm F1.8 ZA,由于35mmZA实在过于笨重,我又想有一颗镜头轻便,高画质,便于日常街拍。旅行拍摄还是使用Sony 24-105 G OSS这颗一镜走天下。

为了记录以后拍摄的内容,也是为了鼓励自己多出去拍,想办法用Django和nginx在linux服务器上搭建了网站。下面进入正题。

1.Django 的准备

网上有很多Django的教程

比较推荐这个:https://ericam.top/post/django-kai-fa-ge-ren-bo-ke-xi-tong/

自己理解之后,可以对代码修改,实现自己想实现的功能

2. Nginx的准备

安装Nginx

sudo apt-get install nginx

编辑Nginx的配置文件,进入配置文件夹

cd /etc/nginx/site-avaliable

这里存放着可以运行的配置文件,新建一个文件

vim miraclove.com

这里创建一个配置文件miraclove.com,配置Http

  1. server {
  2.   charset utf-8; #使用utf-8字符
  3.   listen 80; #监听Http 80端口
  4.   server_name miraclove.com;  # 改成你的域名或IP

  5.   location /media {
  6.     alias /Github/PyWeb/Src/media; #Django的media静态目录
  7.   }
  8.   location /static {
  9.     alias /Github/PyWeb/Src/static; #Django的static静态目录
  10.   }
  11.   location / {
  12.     proxy_set_header Host $host;
  13.     proxy_pass http://127.0.0.1:8000;  # 如果上面都匹配不上,交给Django处理
  14.   }
  15. }

Vim 编辑器,按 i 插入信息,输入完成后,按esc退出编辑,输入:wq,按回车保存修改。

如果有多个域名或者IP需要匹配,还可以在下面添加更多server

这里,配置完成后,运行Nginx服务器

service nginx start

你在http端口应该可以看到Django服务器正常显示了,但是部分浏览器会跳转到https,导致无法显示

3. Https 加密的配置

已经有类似的Http转Https自动化软件,使用 Certbot 向 Let's Encrypt 免费申请 HTTPS 证书

安装CertBot

pip install certbot

使用下面语句,自动转换https服务

sudo certbot --nginx

如果出现,无法识别域名,请将 nginx 配置文件 server_name 后面添加为域名。

再次访问网站,均会以https展示出来。