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