python环境搭建Nginx+uwsgi+Django_第1页
python环境搭建Nginx+uwsgi+Django_第2页
python环境搭建Nginx+uwsgi+Django_第3页
python环境搭建Nginx+uwsgi+Django_第4页
python环境搭建Nginx+uwsgi+Django_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Nginx+uwsgi+DjangoPython开发环境部署1名词解释WSGIWSGI 的全称为: Python Web Server Gateway Interface v1.0 (Python Web 服务器网关接口), 它是 Python 应用程序和 WEB 服务器之间的一种接口。作用类似于FCGI 或 FASTCGI 之类的协议的作用。WSGI 的目标,是要建立一个简单的普遍适用的服务器与 WEB 框架之间的接口。WSGI 的特点是:简单、可移植等。2名词解释FlupWSGI 还只是一种规范,一种标准,它要完成的作用是用来定义 Python 应用程序要如何于 apache/lightt

2、pd/nginx 等之类的 WEB 服务器之间如何进行通信和交换信息,它不是实际 可以直接拿来用的东西。而 flup 就是使用 Python 语言对 WSGI 的一种实现,是可以用 于 Python 的应用开发中的一种工具或者说是一种库。flup 的官方网站为: 。flup 属于开源软件,采用了 BSD 风格 的开放源码授权。那么, WSGI 除了 flup 外,还有没有其他的实现呢,当然有,更多的实现,可以参考:3名词解释Flup 支持的 WSGI 服务器/网关flup 支持三种 WSGI 服务器/网关,分别为 AJP 1.3 , FastCGI ,和 SCGI 。而对于 flup 支持的这

3、三种 WSGI 服务器/网关, flup 有分别提供了两种不同风格的版本:线程版本和进程版本。这样, flup 实际就支持六种类型的 WSGI 服务器/网关,分别为:flup.server.ajp flup.server.ajpfork flup.server.fcgi flup.server.fcgifork flup.server.scgi flup.server.scgi_fork flup.server.cgi 4flup 在 Django 中的应用作为一款非常著名和使用比较广泛的 Python Web 开发框架,Django 中就应用到了 flup 。 在 django/core/s

4、ervers/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这样的请求转发

5、给flup这样的Server/Gateway进行处理flup: 一个用python写的web server,也就是cgi中所谓的Server/Gateway,它负责接受apache/nginx/lighttpd转发的请求,并调用你写的程序 (application),并将application处理的结果返回到apache/lighttpdfastcgi: apache/nginx/lighttpd的一个模块,虽然flup可以作为一个独立的web server使用,但是对于浏览器请求处理一般都交给 apache/nginx/lighttpd处理,然后由apache/nginx/lighttpd转

6、发给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获取nginxWget Groupa

7、dd wwwUseradd g Id www11Nginx 配置选项-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 12Nginx 配置选项-with-http_ssl_module#开启HTT

8、P SSL模块,使NGINX可以支持HTTPS请求-with-pcre=/usr/lib#nginx启用rewrite模块依赖此库-with-zlib=/usr/lib#nginx 启用gzip模块依赖此库-with-openssl=/usr/lib#nginx启用ssl模块依赖此库13Nginx 安装Yum y install pcre-devel./configure -prefix=/usr/local/nginx -pid-path=/var/run/nginx.pid -user= -with-http_ssl_moduleMake & make install14安装pythonW

9、get ./configure -prefix=/usr/local -enable-unicodeMake & make install/usr/local/bin/python2.715安装djangowget Python2.7 setup.py installCd /usr/local/lib/python2.7/site-packages/djangoLn s bin/django-admin.py /usr/binMkdir p /wwwCd /wwwDjango-admin.py startproject oa16安装flupwget Flup依赖setuptoolsWget C

10、d setuptools-0.6c11Python2.7 setup.py installCd flup-1.0.2Python2.7 setup.py install17安装mysqldbwget Python2.7 setup.py install如果mysql是yum方式安装的还需要安装 mysql-devel18安装uwsgiWget Python2.7 uwsgiconfig.py -build19创建django工程wget Python2.7 setup.py installLn s /usr/local/lib/python2.7/site-packages/django/dj

11、ango-admin.py /usr/binMkdir p /wwwDjango-admin.py startproject oaDjango_wsgi.pyimport osimport django.core.handlers.wsgios.environDJANGO_SETTINGS_MODULE = oa.settingsapplication = django.core.handlers.wsgi.WSGIHandler()20创建django工程Uwsgi.xml :8000 20 true pid 2 django_wsgi / / true true true true 604

12、821配置nginxuser ;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-strea

13、m; 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

14、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 in

15、stance 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 :8000; include uwsgi_params; log_format access $remote_addr - $remote_user $ti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论