我的博客

Nginx + gunicorn部署django项目(https)

目录
  1. 编译安装nginx
  2. 配置nginx
    1. 80端口的设置
    2. 配置域名
    3. 配置转发
    4. 配置静态文件路径
    5. 配置ssl
    6. 把http重定向到https
  3. 获取django静态文件并添加到nginx的静态目录下
  4. 部署django

测试环境

centos 7.6 nginx1.17.0

Ubuntu 16.04 nginx1.10.3

编译安装nginx

CentOS 7 下编译安装nginx并配置服务

配置nginx

80端口的设置

listen 80 default_server; listen [::]:80 default_server;

配置域名

server_name codeplot.top;

配置转发

1
2
3
4
5
6
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

配置静态文件路径

1
2
3
location /static {
alias html/static/;
}

配置ssl

ssl_certificate cert/1539002028323.pem; ssl_certificate_key cert/1539002028323.key;

ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;

把http重定向到https

return 301 https://$server_name$request_uri;

获取django静态文件并添加到nginx的静态目录下

1.在settings.py文件中添加配置; STATIC_ROOT 指示把静态文件放到哪里

例如 STATIC_ROOT = os.path.join(BASE_DIR, 'static_export')

2.执行命令,读取所有static文件到项目目录中

python3 manage.py collectstatic

3.把这些系统static文件连同项目的static文件一起拷贝到nginx的静态目录下(上一步设置的目录)

部署django

  • 安装依赖

pip install gevent gunicorn

  • 启动gunicorn

gunicorn --worker-class=gevent 应用名称.wsgi:application

评论无需登录,可以匿名,欢迎评论!