1 布署前需要关闭调试、允许任何机器访问

DEBUG = False
ALLOW_HOSTS=['*',]

2 安装环境包

pip3.6 install -r plist.txt --default-timeout=1000 --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/

3 测试代码是否有问题

python3.6 manage.py makemigrations
python3.6 manage.py migrate
python3.6 manage.py runserver 127.0.0.1:8000

3.1 查看端口占用

netstat -ntpl

3.2 关闭占用端口的进程

kill -9 12345(PID)

3.3 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

注释掉 /usr/local/python3.6/lib/python3.6/site-packages/django/db/backends/mysql/base.py
# if version < (1, 3, 13):           
#     raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version) 

3.4 AttributeError: ‘str’ object has no attribute ‘decode’ 

把decode 换成 encode   /usr/local/python3.6/lib/python3.6/site-packages/django/db/backends/mysql/operations.py
query = query.decode(errors='replace')  换成 query = query.encode(errors='replace')

4 安装uwsgi

pip3.6 install uwsgi

4.1 配置uWSGI,在项目目录下创建uwsgi.ini文件,与manage.py同级

[uwsgi]
#使用nginx连接时使用
socket = 0.0.0.0:8080
#直接做web服务器使用
# http=0.0.0.0:8080
#项目目录(写绝对目录)
chdir = /root/01-yu/03-django/spider_user
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file = spider_user/wsgi.py
#设置进程数目
processes = 4
#每个工作进程中的线程数
threads = 2
#当初主进程来启动
master = True
#主进程id存放的文件相对路径, 与manage.py同级
pidfile = uwsgi.pid
#日志输出文件, 与manage.py同级
daemonize = uwsgi.log
#Python文件改动时自动重启
# py-auto-reload = 1
# 当服务器退出的时候自动清理环境
vacuum = true
# 日志大小,当大于这个大小会进行切分 (Byte)
log-maxsize = 500000000(按需设置,我设置了500MB)
# 虚拟环境目录(绝对路径)
# home = 你的虚拟环境目录
#目录下文件改动时自动重启
# touch-reload = 目录

4.2 启动, 进入uwsgi.ini文件所在的目录。

uwsgi --ini uwsgi.ini

4.3 查看uwsgi是否启动

ps -aux | grep uwsgi

4.4 停止, uwsgi。

uwsgi --stop uwsgi.pid

5 安装nginx

5.1 依赖环境安装

yum -y install automake autoconf libtool make
yum -y install gcc gcc-c++ pcre pcre-devel ziib openss

5.2 修改yum源

$vim /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

5.3 安装nginx

yum install nginx

5.4 修改nginx配置文件  /etc/nginx/nginx.conf

server{   # 一个server对应一个服务   可以写多个server
        listen  80;   # 监听的端口
        server_name  0.0.0.0;  # 主机名

        location / {   # 配置默认访问的路径
            include /etc/nginx/uwsgi_params;
            uwsgi_pass 0.0.0.0:8080;  #对于动态请求,转发到本机的8001端口,也就是uwsgi监听的端口
        }

        error_page 500 502 503 504  /50x.html;   # 错误页面
        location = /50x.html {
            root  /usr/share/nginx/html;  #root 页面所在的路径
        }
    }

6 启动uwsgi

启动uwsgi:uwsgi --ini uwsgi.ini
停止uwsgi:uwsgi --stop uwsgi.pid
重新加载配置:uwsgi --reload uwsgi.pid

7 启动nginx

启动nginx:service nginx start
停止nginx:service nginx stop
重启nginx:service nginx restart

8 访问http://192.168.107.216/api/spider_test/

查看是否成功

9 项目更改重启一下uwsgi服务就可以

uwsgi --reload uwsgi.pid