部署到Linux
从github下载源码
1,git clone https://github.com/zhaorch/DRFtutorial.git -- 注意用https的这个
2,创建虚拟环境,并安装插件库
3,修改配置文件/还原数据库
4,在虚拟环境下执行命令 python3 manage.py runserver
5,验证linux可访问
6,开启远程访问端口
iptables-I INPUT -p tcp --dport 8000 -j ACCEPT
7,启动服务
python3manage.py runserver 0.0.0.0:8000
安装uwsgi
pipinstall uwsgi
测试uwsgi 写一个test.py文件
defapplication(env, start_response): start_response('200
OK', [('Content-Type','text/html')])return“HelloWorld”
uwsgi
--http :8001 --wsgi-file test.py --一直返回空页面,不知道为啥???不测试了
在manage.py 同级创建 uwsgi.ini 文件
备注不要乱写,特别是不要写在路径后面。。。太郁闷了
chdir=/home/zrc/mywebsite/yunshop/yun-shop-drf # 这个备注就会抛异常
---------------------------------------------
[uwsgi]
socket=192.168.74.128:8000
chdir=/home/zrc/mywebsite/yunshop/yun-shop-drf
module=YunShop.wsgi
#http
= IP:Port #web服务IP端口,uWSGI做web服务器时用
master=true
processes=4
#vhost
= true #多站模式
#no-site
= true #多站模式时不设置入口模块和文件
#workers
= 2 #子进程数
#reload-mercy
= 10
#vacuum
= true #退出、重启时清理文件
#max-requests
= 1000
#limit-as
= 512
#buffer-size
= 30000
#进程文件,新建空文件即可,用于服务重启、停止。如:
#重启指令:uwsgi --restart [pidfile路径]
#停止指令:uwsgi --stop [pidfile路径]
pidfile=/home/zrc/mywebsite/yunshop/yun-shop-drf/uwsgi.pid
daemonize=/home/zrc/mywebsite/yunshop/yun-shop-drf/uwsgi.log
#disable-logging
= true #不记录正常信息,只记录错误信息
---------------------------------------------
运行命令:
uwsgi --http :8888 --module YunShop.wsgi
安装nginx
步骤略
启动服务 :nginx 默认是80端口,我给改了8014
nginx -sreload
# 其他指令
启动服务:nginx
退出服务:nginx -s quit
强制关闭服务:nginx -s stop
重启服务:nginx -s reload
验证配置文件:nginx -t
使用配置文件:nginx -c "配置文件路径"
使用帮助:nginx -h
ps -aux | grep tomcat
kill -9 [PID]
ngnx配置:/etc/nginx/conf.d/default.conf
server {
listen 8014;
server_name 192.168.74.128;
location / {
include uwsgi_params;
uwsgi_pass 192.168.74.128:8000;
uwsgi_read_timeout 2;
}
启动Nginx和UWsgi
nginx
uwsgi --ini uwsgi.ini
uwsgi --reload uwsgi.pid
uwsgi --stop uwsgi.pid
静态文件的配置
静态资源收集,Pycharm /Windows 里 python manage.py
collectstatic
然后把static 压缩成zip static.zip
用 SecureCRT rz回车 上传该文件
然后 unzip static.zip
然后还是不行,经过查看 将 nginx.conf 的 第一行
user nginx; 修改为 user root;就可以了。。暂时这样了。。
同样需要修改一个文件就可以运行了
/root/.virtualenvs/yunshop/lib/python3.7/site-packages/django/forms/boundfield.py
注释掉那个render =
此外nginx还可以托管静态资源的访问需要配置nginx的配置,
或者