python环境搭建Nginx+uwsgi+Django

上传人:hy****d 文档编号:243009857 上传时间:2024-09-13 格式:PPTX 页数:25 大小:111.46KB
返回 下载 相关 举报
python环境搭建Nginx+uwsgi+Django_第1页
第1页 / 共25页
python环境搭建Nginx+uwsgi+Django_第2页
第2页 / 共25页
python环境搭建Nginx+uwsgi+Django_第3页
第3页 / 共25页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2011/6/22 Wednesday,#,Nginx+uwsgi+Django,Python,开发环境部署,1,名词解释,WSGI,WSGI,的全称为:,Python Web Server Gateway Interface v1.0,(,Python Web,服务器网关接口), 它是,Python,应用程序和,WEB,服务器之间的一种接口。,作用类似于,FCGI,或,FASTCGI,之类的协议的作用。,WSGI,的目标,是要建立一个简单的普遍适用的服务器与,WEB,框架之间的接口。,WSGI,的特点是:简单、可移植等。,2,名词解释,Flup,WSGI,还只是一种规范,一种标准,它要完成的作用是用来定义,Python,应用程序要如何于,apache/lighttpd/nginx,等之类的,WEB,服务器之间如何进行通信和交换信息,它不是实际 可以直接拿来用的东西。而,flup,就是使用,Python,语言对,WSGI,的一种实现,是可以用 于,Python,的应用开发中的一种工具或者说是一种库。,flup,的官方网站为:,。,flup,属于开源软件,采用了,BSD,风格 的开放源码授权。,那么,,WSGI,除了,flup,外,还有没有其他的实现呢,当然有,更多的实现,可以参考:,3,名词解释,Flup,支持的,WSGI,服务器,/,网关,flup,支持三种,WSGI,服务器,/,网关,分别为,AJP 1.3,,,FastCGI,,和,SCGI,。,而对于,flup,支持的这三种,WSGI,服务器,/,网关,,flup,有分别提供了两种不同风格的版本:,线程版本和进程版本,。,这样,,flup,实际就支持六种类型的,WSGI,服务器,/,网关,分别为:,flup.server.ajp,flup.server.ajp,fork flup.server.fcgi flup.server.fcgi,fork flup.server.scgi flup.server.scgi_fork flup.server.cgi,4,flup,在,Django,中的应用,作为一款非常著名和使用比较广泛的,Python Web,开发框架,,Django,中就应用到了,flup,。,在,django/core/servers/fastcgi.py,文件中,就调用了,django/core/handlers/wsgi.py,中的,WSGIHandler(),负责对,WSGI,的应用进行处理。,WEB,处理流程:,nginx flup(wsgi/django),lighttpd flup(wsgi/django),apache flup(wsgi/django),5,总结,Apache/Nginx/lighttpd:,相当于一个,request proxy,,根据配置,把不同的请求转发给不同的,server,处理,例如静态的文件请求自己处理,这个时候它就像一个,web server,,对于,fastcgi/python,这样的请求转发给,flup,这样的,Server/Gateway,进行处理,flup:,一个用,python,写的,web server,,也就是,cgi,中所谓的,Server/Gateway,,它负责接受,apache/nginx/lighttpd,转发的请求,并调用你写的程序,(application),,并将,application,处理的结果返回到,apache/lighttpd,fastcgi:,apache/nginx/lighttpd,的一个模块,虽然,flup,可以作为一个独立的,web server,使用,但是对于浏览器请求处理一般都交给,apache/nginx/lighttpd,处理,然后由,apache/nginx/lighttpd,转发给,flup,处理,这样就需要一个东西来把,apache/nginx/lighttpd,跟,flup,联系起来,这个东西就是,fastcgi,,它通过环境变量以及,socket,将客户端请求的信息传送给,flup,并接收,flup,返回的结果,6,更新,yum,源,源路径:,/etc/yum.repos.d,扩展名为,repo,的都是源,我是将,10.3,测试服务器上的源打包下载后覆盖到我的虚拟机上。,下图是,/etc/yum.repos.d,下的源,7,安装,nginx,模块依赖性,gzip,模块需要,zlib,库,rewrite,模块需要,pcre,库,ssl,功能需要,openssl,库,8,如何检查包,9,如何检查包,10,获取,nginx,Wget,Groupadd www,Useradd g,Id www,11,Nginx,配置选项,-prefix=/usr/local/nginx,-sbin-path=/usr/local/nginx/nginx,#,如果不配置此选项,nginx,命令将默认安装到,/usr/local/nginx/sbin,下,-conf-path=/etc,#,默认,/usr/local/nginx/conf,下,-pid-path=/var/run,#,默认,/usr/local/nginx,-user=www,#nginx.conf,下如果没有配置将使用当前设置,-group=www,12,Nginx,配置选项,-with-http_ssl_module,#,开启,HTTP SSL,模块,使,NGINX,可以支持,HTTPS,请求,-with-pcre=/usr/lib,#nginx,启用,rewrite,模块依赖此库,-with-zlib=/usr/lib,#nginx,启用,gzip,模块依赖此库,-with-openssl=/usr/lib,#nginx,启用,ssl,模块依赖此库,13,Nginx,安装,Yum y install pcre-devel,./configure -prefix=/usr/local/nginx -pid-path=/var/run/nginx.pid -user= -with-http_ssl_module,Make & make install,14,安装,python,Wget,./configure -prefix=/usr/local -enable-unicode,Make & make install,/usr/local/bin/python2.7,15,安装,django,wget,Python2.7 setup.py install,Cd /usr/local/lib/python2.7/site-packages/django,Ln s bin/django-admin.py /usr/bin,Mkdir p /www,Cd /www,Django-admin.py startproject oa,16,安装,flup,wget,Flup,依赖,setuptools,Wget,Cd setuptools-0.6c11,Python2.7 setup.py install,Cd flup-1.0.2,Python2.7 setup.py install,17,安装,mysqldb,wget,Python2.7 setup.py install,如果,mysql,是,yum,方式安装的还需要安装,mysql-devel,18,安装,uwsgi,Wget,Python2.7 uwsgiconfig.py -build,19,创建,django,工程,wget,Python2.7 setup.py install,Ln s /usr/local/lib/python2.7/site-packages/django/django-admin.py /usr/bin,Mkdir p /www,Django-admin.py startproject oa,Django_wsgi.py,import os,import django.core.handlers.wsgi,os.environDJANGO_SETTINGS_MODULE = oa.settings,application = django.core.handlers.wsgi.WSGIHandler(),20,创建,django,工程,Uwsgi.xml,0.0.0.0:8000,20,true,2,django_wsgi,/,/,true,true,true,true,6048,21,配置,nginx,user ;,worker_processes 8;,error_log /usr/local/nginx/logs/nginx_error.log crit;,pid /var/run/nginx.pid;,#Specifies the value for maximum that can be opened by this process.,worker_rlimit_no;,events,use epoll;,worker_connections 51200;,http,include mime.types;,default_type application/octet-stream;,charset utf-8;,server_names_hash_bucket_size 128;,client_header_buffer_size 32k;,large_client_header_buffers 4 32k;,client_max_body_size 8m;,22,配置,nginx,send;,tcp_nopush on;,keepalive_timeout 60;,tcp_nodelay on;,gzip on;,gzip_min_length 1k;,gzip_buffers 4 16k;,gzip_http_version 1.0;,gzip_comp_level 2;,gzip_types text/plain application/x-javascript text/css application/xml;,gzip_vary on;,#limit_zone crawler $binary_remote_addr 10m;,# uWSGI serving Django.,# upstream django ,# Distribute requests to servers based on client IP. This keeps load,# balancing fair but consistent per-client. In this instance were,# only using one uWGSI worker anyway.,# ip_hash;,# server unix:/tmp/uwsgi.sock;,# ,23,配置,nginx,server,listen 80;,server_name ;,# Django admin media.,location /media/admin/ ,alias /usr/local/lib/python2.7/site-packages/django/contrib/admin/media/;,# Your projects static media.,location /media/ ,alias /;,# Finally, send all non-media requests to the Django server.,location / ,root /;,uwsgi_pass 127.0.0.1:8000;,include uwsgi_params;,log_format access $remote_addr - $remote_user $time_local $request ,$status $body_bytes_sent $http_referer ,$http_user_agent $http_x_forwarded_for;,access_log /usr/local/nginx/logs/access.log access;,24,启动服务,uwsgi -x /,/usr/local/nginx/sbin/nginx,重启,kill -HUP cat /var/run/nginx.pid,Uwsgi,重启必须,kill,所有进程,25,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!