部署上线流程
nginx服务器一台
django服务器多台
代理的服务项目每个django服务器上都要有
在nginx服务器安装nginx并配置好 详见Nginx.pdf
在每个django服务器上安装uwsgi,并且在项目中新建uwsgi.ini 文件
[uwsgi]
socket=0.0.0.0:8888 用作代理服务器的时候使用
#http=0.0.0.0:8888 用作本地服务器的时候使用
chdir=/home/hero/project 指定项目目录
wsgi-file=project/wsgi.py 指定wsgi文件
processes=2 启动进程数,最好和cpu核心数一样
threads=2 线程
master=True 代理,管理者
pidfile=uwsgi.pid 进程号存放文件
daemonize=uwsgi.log 日志存放文件
1.用uwsgi本地跑项目
uwsgi中注释socket,打开http
运行uwsgi服务器 uwsgi --ini uwsgi.ini
浏览器窗口输入对应django服务器ip 和端口就可以访问项目
2.反向代理用nginx服务器跑一台django服务器,不做负载均衡
uwsgi中打开socket,注释http
运行uwsgi服务器 uwsgi --ini uwsgi.ini
在nginx服务器的/usr/local/ngnix/conf/nginx.conf中的server中
location / {
#代理服务器的runserver服务器
#proxy_pass http://47.100.42.251:8888;
#proxy_set_header X-real-ip $remote_addr;
#proxy_set_header Host $http_host;
#代理一台服务器
include uwsgi_params;
uwsgi_pass 47.100.42.251:8888; 这里的ip端口和项目中uwsgi.ini中的socket要一样
}
3.反向代理用nginx服务器跑多台django服务器,负载均衡
在nginx服务器的/usr/local/ngnix/conf/nginx.conf中的server上面
upstream mjh{ 这里的mjh是给负载均衡起的名字
server 47.100.42.251:8888 weight=1;
server 47.94.234.14:8888 weight=1;
server 47.95.3.141:8888 weight=1 max_fails=3 fail_timeout=300;
}
之后再server的location中换成
#代理多台服务器
include uwsgi_params;
uwsgi_pass mjh; 这里是上面负载均衡的名字
4.反向代理用nginx服务器跑多台django服务器,并把静态文件放到nginx服务器上
在nginx服务器的/usr/local/ngnix/conf/nginx.conf中的server下面
location /static {
alias /var/www/myApp/static/; 这里var是服务器根目录的文件夹,一般用来存一些修改经常改变的文件
myApp最好换成工程的名字
}
在nginx服务器上新建/var/www/myApp/目录层级
在一台django服务器的项目的setting中的静态文件中加入
STATIC_ROOT='/home/hero/static'这里是一个目录
这是为了把工程的所有静态文件导出到这个目录下
一般自己copy会去缺少admin等相关的静态文件
然后把导出的static文件夹
发送到nginx服务器的指定目录下 scp -r static/ root@47.94.252.144:/var/www/myApp/
重启nginx服务