nginx+gunicorn django部署

一、部署准备

1.云服务器与域名

云服务器要配置好端口:
步骤如下:

  • 进入阿里云服务器安全组规则
  • 如图编辑:
    nginx+gunicorn django部署_第1张图片
    域名与云服务器公网IP相链接:
    步骤如下:
  • 来到服务器管理处,记住你的外网ip。
  • 来到域名控制台,点击你的域名,点击新手引导,输入你的ip
    nginx+gunicorn django部署_第2张图片
2.xftp连接阿里云服务器(详情查看本文)
3.可以在本地运行的django项目(最好有相关依赖的文件:requirements.txt)

二、Ubuntu配置

1.用户
  • 新建用户
  • 把新创建的用户加入超级权限组
  • 为新用户设置密码
    注意在输密码的时候不会有字符显示,不要以为键盘坏了,正常输入即可
  • 切换到创建的新用户
    ubuntu命令参考文章
2.更新系统
sudo apt-get update
sudo apt-get upgrade
3.安装应用
  • nginx
    sudo apt-get install nginx
  • mysql(如果django项目使用的是mysql数据库)
  • python3 、pip、 virtualenv、pymysql、gunicorn、项目依赖包
    sudo apt-get install git python3 python3-pip

三、启动nginx

sudo service nginx start

  • 配置nginx
    在/etc/nginx/conf.d文件夹下,创建域名.conf文件
    sudo vim 域名.conf
    :!wq #管理员权限保存
    文件内容如下
server {
    charset utf-8;
    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;
    root   *******;   #配置虚拟环境的目录
    access_log *******/access_log.log;  #配置这个log文件夹,在manage.py同目录下创建log文件夹,在log文件夹下创建.log文件
    error_log  ********/error_log.log;   #配置这个log文件夹,同上
    listen 80;
    listen 443 ssl;
    server_name *******;#填域名
   
    location /static {
        # 文件目录
        alias ********;#项目static文件目录
    }

    location / {
        proxy_pass  http://127.0.0.1:8001;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}
##此处为支持https协议,若是http可不用
server {
    listen 80;
    server_name *******;#填域名
    return 301 https://$host$request_uri;
}


  • 配置上述文件时注意:分号;的应用,有时忘记加会导致nginx启动出错

四、配置django项目

基本部署,如superuser ,mysql,等命令不再赘述,以下只阐述重要的,需修改的细节

1.修改setting.py
DEBUG = False
ALLOWED_HOSTS = ['*'] #此处改为域名和公网ip
########-------#######
STATIC_URL = '/static/'
# 加入下面的配置
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

2.安装依赖包

如果在上一步骤完成,此处不必了

五、激活网站

1.配置数据库

python3 manage.py migrate

2.superuser

python3 manage.py createsuperuser

3.收集静态文件

python3 manage.py collectstatic

4.启动网站

gunicorn xxxx.wsgi:application -w 4 -b 0.0.0.0:8001
# xxxx为项目名

至此,网站基本部署完毕。
(本人也处于探索阶段,有问题望指出,共同探讨)
参考文章,及其他部署方式,其中的问题如下:
1. nginx+gunicorn
2. nginx+uwsgi
3.nginx+uwsgi

你可能感兴趣的:(Python,Django框架实践,nginx,云服务器)