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连接时,使用socket)socket=127.0.0.1:34002.收集静态文件,项目目录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
重启需要手动杀掉进程
- uwsgi+django+nginx+supervisor部署web应用(python)
- django+nginx+uwsgi+service部署web应用
- nginx + uwsgi 部署python django web服务
- uWSGI+nginx部署python及django应用
- ubuntu+uwsgi+nginx+django+supervisor部署
- nginx+uwsgi+django+supervisor
- Nginx+uWSGI部署Django应用
- Nginx+uwsgi部署django应用
- nginx+uwsgi部署django应用
- Nginx+uwsgi部署django应用
- 【Django】Django web项目部署(Nginx+uwsgi)
- 【NGINX】nginx+uwsgi+django+python部署总结
- nginx+uwsgi部署python应用
- 使用nginx+uwsgi部署django应用
- 使用uWSGI Web服务器和Nginx部署Python WSGI应用
- nginx+uwsgi+django+python环境部署文档
- Nginx + uWSGI + Python + Django部署实例
- nginx+uwsgi+django部署python项目
- Element对象的firstchild和lastChild获取属性值的undefined问题
- JBDC+mysql Notes
- Window7旗舰64位SP1下安装MariaDB10.2.6
- Kubernetes服务之StatefulSets简介
- LEetCode(6)
- uwsgi+django+nginx+supervisor部署web应用(python)
- 关于为什么element对象的childNodes属性返回值有偏差的问题解释(知其所以然)
- kernel (I) basic learning
- Python设计模式-解释器模式
- ubuntu16.04 安装有道词典
- Python设计模式-中介者模式
- Python设计模式-备忘录模式
- Python设计模式-状态模式
- 非线性最小二乘法优化问题(1)