uwsgi+django+nginx+supervisor部署web应用(python)

来源:互联网 发布:网络客服招聘 编辑:程序博客网 时间:2024/05/23 12:19

直接开工,这里的uwsgi启动方式是通过uwsgi命令读取ini格式的文件内容,请耐心阅读,内容不多

分别安装django,nginx,uwsgi,我的django和nginx是apt-get 安装的,uwsgi是pip 安装的,系统环境是ubuntu 16.04

默认你的项目可以用命令:python manage.py runserver 0.0.0.0:8000运行起来

(记得把调试模式关闭,允许所有ip访问),就是settings文件里的下面两行,没有就添加,

DEBUG = FalseALLOWED_HOSTS = ["*",]

1.调试uwsgi

项目目录新建文件uwsgi.ini,内容如下,别偷懒,代码全抄进去,下面要用。


回到项目目录运行命令:uwsgi --ini uwsgi.ini(启动uwsgi服务)

浏览器登录192.168.1.103:8000/....(别学我省略url),网页能访问,但静态图片,js.css加载不了,要进行下面第2大步才可以正常加载图片

附常用命令:

停止:uwsgi --stop uwsgi.pid

重启:uwsgi --reload uwsgi.pid

pid文件记录的是uwsgi进程号,也是用uwsgi命令读取文件的内容而已,没什么神奇的!


2.调试nginx(第一步运行不起来的别看这个了,步骤比较多,先看小标题理解了说不定就不用继续看了)

1.修改nginx.ini的文件,改为用socket服务,注释掉http服务

;ip:端口(使用nginx连接时,使用socketsocket=127.0.0.1:3400
2.收集静态文件,项目目录setting文件最后添加下面的额几行代码
STATIC_URL = '/static/'STATICFILES_DIRS = [    os.path.join(BASE_DIR,"static")]STATIC_ROOT='/var/www/daily/'

回到系统根目录新建文件目录:sudo mkdir /var/www/daily
配置权限:sudo chmod 777 /var/www/daily
回到项目目录下运行命令:python manage.py collectstatic
收集不了,问问自己项目目录下有static(js,css,images放里面的)文件夹吗?,
收集成功的看看/var/www/daily有没有你项目的文件,只要看图片!
3,修改/etc/nginx/sites-enabled/default文件,server内添加或修改。
server{
listen80;
server_name127.0.0.1;
charsetutf-8;
client_max_body_size75M;
location /static {
alias /var/www/daily/; (上面收集的静态文件目录)
}
location / {        
include     uwsgi_params;        
uwsgi_pass 127.0.0.1:3400; (要和上面的socket端口一致)  
 }
}
4.修改/etc/nginx/nginx.conf文件用户的权限,其它不要动
文件内修改,没有就添加: user root

5.检测nginx.conf的配置:命令如下

cd /etc/.init.d/nginx

sudo nginx -t

出错自己查看下错误提示,没错会有ok的提示的



6.重启uwsgi:记得stop再启动,出错瞪大眼睛看清楚命令吧



7.启动nginx,直接nginx start如果无效的,看下图,要加路径!


附送常用命令:(start和reload前记得要检测下nginx.conf配置是否正确,上面5有提到)

停止:sudo /etc/init.d/nginx -s stop

重启:sudo /etc/init.d/nginx -s reload


因为default配置的监听端口是80,所以现在访问不用加端口号了,直接192.168.1.103/...


8.supervisor进程管理(进程监控自动重启)

1.安装:pip install supervisor

注释uwsgi.ini文件的

    ;daemonize=uswgi.log

2.创建默认配置文件

echon_supervisord_conf >/etc/supervisord.conf


3.修改文件:

vi /etc/supervisord.conf

最后一行添加或修改

[include]

files = /etc/supervisor/conf.d/uwsgi_start.ini


4.创建进程管理配置文件

mkdir /etc/supervisor/conf.d/uwsgi_start.ini



5.启动supervisor服务

命令行输入:supervisord
重启需要手动杀掉进程

6.启动supervisorctl 客户端进程管理器:
命令行输入:supervisorctl start all


其他命令网上自行搜索吧,很多,很详细了







原创粉丝点击