为了可以更更好的实现共享,所以部署服务器
部署 --WSGI
只有一个项目的话,部署wsgi就不需要在虚拟环境上
第一步:
pip freeze > plist.txt #执行明命令收集所有包
第二步:安装所有需要的包
pip install -r plist.txt
第三步: 更改settings.py文件 关闭调试
DEBUG = False
ALLOW_HOSTS=['*',]表示可以访问服务器的ip
因为 uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器
所以我们需要安装uwsgi
pip install uwsgi
如果你在安装的时候报错的话,输入 这句话在进行安装
sudo apt-get install python3-dev
第五步:配置uWSGI,在项目中新建文件uwsgi.ini, 这个名字尽量写成这个
#socket=外网ip:端口(使用nginx连接时,使用socket)---这句话在测试uwsgi的时候需要注释
http=外网ip:端口(直接做web服务器,使用http)
chdir=项目根目录
wsgi-file=项目中wsgi.py文件的目录,相对于项目根目录 路径
processes=4 -----------四个子进程
threads=2 ------------每个 子进程下面跟两个线程
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log
第六步:查看状态或者是否成功可以查看日志 uswgi.log
启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid
启动uwsgi ,进入你项目的路径,你会发现,静态文件的照片打不开,这个时候就引入 nginx
使用nginx的作用
1. 负载均衡:多台服务器轮流处理请求
2. 反射代理:隐藏真实服务器
3.加载静态文件
第一步:安装
sudo apt-get install nginx
第二步:在项目里面创建Ÿ nginx.conf文件
sudo vim /etc/nginx/nginx.conf
server {
listen 8888; #端口号
server_name mydjango; #服务器名,随意
location / {
include uwsgi_params; #将所有的参数转到uwsgi下
uwsgi_pass 192.168.12.26:8000; #uwsgi的ip与端口 与你写的uwsgi IP和端口号一定要保持一致
}
location /static {
alias /var/www/项目名称/static/;
}
}
第三步:在根目录下创建文件
/var/www/项目名称/static/;
第四步:修改 权限
sudo chmod 777 /var/www/test5
第五步:抓取项目里所有的静态文件
python manage.py collectstatic
第六步:
socket=192.168.12.26:8000
#http=192.168.12.26:8080
chdir=/home/cui/dayfresh
wsgi-file=dayfresh/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log
重启nginx、uwsgi
此时在访问就会发现可以加载静态文件