之前搞app时候学的webpy,一直用的自带webserver,最近研究nginx一段时间,决定二者结合玩一下~

  把搭建的要点总结下,说不定哪天还得用——其实平时手挺懒的...

  1 必备模块和背景知识

   pcre,flup,nginx,webpy,spawn-fcgi

     pcre是nginx安装前提;安装pcre后configur enginx时带--with-pcre=path,path为pcre源码路径(不是安装路径哦)。

   fastcgi , 通信规范,规定了通信的方式、协议;而wsgi是接口规范,规定了函数定义、调用,相当于一组 Python API,提供了对 FastCGI (及其它)协议的支持。

   spawn-fcgi , fastcgi进程管理器,最初是lighttpd的子模块,lighttpd也是一个与nginx类似的http server,作用等同于其它http server中的fastcgi模块;只不过它实现的比较好、在某些情况下的效能会比较高,所以被大家分离出来广泛使用,以致独立出来作为一个项目。所以就有了apache+spawn-fcgi、nginx+spawn-fcgi等.

     flup, 一个用python写的web server,也就是cgi中所谓的Server/Gateway,它负责接受lighttpd转发的请求,并调用你写的程序 (application),并将application处理的结果返回到apache/lighttpd.

     web.py,应该说有了上面的东西你就可以开始编写你的web程序了,但是问题是你就要自己处理浏览器的输入输出,还有cookie、session、模板等各种各样的问题了,web.py的作用就是帮你把这些工作都做好了,它就是所谓的web framework,另外一个出名的是django,不过感觉太复杂了,web.py差不多就够用了(目前web.py对session的支持不是太好)。

  他们关系如下,

  

2 配置过程

统统略,见参考文献2和3

3 源码注解

大体请参考4,研读中请务必弄清楚几个知识点:进程会话,粘滞位,dup2函数等,否则会被很多非核心代码搞蒙。

其实,核心的代码就在这,

close(FCGI_LISTENSOCK_FILENO);
dup2(fcgi_fd, FCGI_LISTENSOCK_FILENO);
close(fcgi_fd);  

之后的exec操作,子进程都会继承FCGI_LISTENSOCK_FILENO,然后会在这上面accept(这自然是flup操作wsgi了),然后会写回accept的句柄,nginx就会受到响应的。

参考文献:

1 nginx配置大全中文   http://my.oschina.net/duxuefeng/blog/34880

2 webpy官方配置建议  http://webpy.org/cookbook/fastcgi-nginx.zh-cn

3 一个中文配置示例   http://blog.csdn.net/five3/article/details/7732832

4 spawn-fcgi源码     http://chenzhenianqing.cn/articles/936.html

nginx+webpy配置的更多相关文章

  1. 如何在Nginx下配置PHP程序环境

    1.nginx与PHP的关系 首先来看nginx与php的关系, FastCGI的关系(而不是像apache那样安装成nginx的模块) FastCGI的意思是, 快速的通用网关接口:CGI Comm ...

  2. 从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡

    为什么现在有非常多的聪明人都在致力于互联网? 最近在读埃隆·马斯克传记,他说「我认为现在有非常多的聪明人都在致力于互联网」. 仔细一想,好像真的是这样的. 我问了自己一个问题:如果你不敲代码了,你能做 ...

  3. Nginx主配置参数详解,Nginx配置网站

    1.Niginx主配置文件参数详解 a.上面博客说了在Linux中安装nginx.博文地址为:http://www.cnblogs.com/hanyinglong/p/5102141.html b.当 ...

  4. nginx + tomcat配置负载均衡

    目标:Nginx做为HttpServer,连接多个tomcat应用实例,进行负载均衡. 注:本例程以一台机器为例子,即同一台机器上装一个nginx和2个Tomcat且安装了JDK1.7. 1.安装Ng ...

  5. spring4+websocket+nginx详细配置

    实现的版本jdk1.7.0_25, tomcat7.0.47.0, Tengine/2.1.1 (nginx/1.6.2), servlet3.0, spring4.2.2 使用maven导入版本3. ...

  6. Nginx Location配置总结

    Nginx Location配置总结 语法规则: location [=|~|~*|^~] /uri/ { - }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即 ...

  7. 理解nginx的配置

    Nginx配置文件主要分成四部分:main(全局设置).server(主机设置).upstream(上游服务器设置,主要为反向代理.负载均衡相关配置)和 location(URL匹配特定位置后的设置) ...

  8. nginx缓存配置的操作记录梳理

    web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...

  9. 在nginx中配置如何防止直接用ip访问服务器web server及server_name特性讲解

    看了很多nginx的配置,好像都忽略了ip直接访问web的问题,不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面. 官方文档中提供的方法: If you d ...

随机推荐

  1. HttpClient学习整理

    HttpClient简介HttpClient 功能介绍    1. 读取网页(HTTP/HTTPS)内容    2.使用POST方式提交数据(httpClient3)    3. 处理页面重定向    ...

  2. IT职场人的“存在主义”

      人生在世,最重要的一条就是:找准你的位置.也就是,你的定位问题. 就在前两天,参加一次社交活动,一知名培训师回顾过往,感慨地说:一个好的培训师,一定要定位好自己的客户群,根据他们的需求做好自己的定 ...

  3. PLSQL查询字段为科学计数法,修正显示

    打开PLSQL工具--- toad中->view->option->data->display large number in scientific notationpl/sq ...

  4. Ubuntu 14.04 掛載 網路磁碟 mount internet disk

    1.install cifs tool (Common Internet File System) 新增 /etc/apt/apt.conf.d/01proxy 檔案並加入以下字串,即可透過此台機器做 ...

  5. 用类(function(){})()实现点击显示index索引值的详解

    code: <script type="text/javascript"> ; i < ; i++){ var btn = document.createElem ...

  6. GitHub新手快速入门日常操作流程

    GitHub新手快速入门日常操作流程 1. 注册帐号 打开https://github.com/,填写注册信息并提交. 2. 登录帐号 打开https://github.com/login,输入注册的 ...

  7. Honeywords项目——检查密码是否被破解的一种简单方法

    Honeywords项目使用一种简单的方法来改进hash后的密码的安全性——为每个账户维护一个额外的honeywords(假密码).如果有黑客拿到了密码的文件,然后试图用brute froce的方式破 ...

  8. ReSharper 配置及用法

    1:安装后,Resharper会用他自己的英文智能提示,替换掉 vs2010的智能提示,所以我们要换回到vs2010的智能提示 2:快捷键.是使用vs2010的快捷键还是使用 Resharper的快捷 ...

  9. 常见linux命令释义(第八天)—— Bash Shell 的操作环境

    换了新公司,公司的领导很不错.自己感受比较多的地方是,自己的工作效率明显比以前高了.以前会对频繁变动的需求十分不耐烦,现在接到需求后会仔细的思考,进行整体构建.即使以后需求有变动,也能够比较轻易的在原 ...

  10. Linux 下EXT2文件系统 —— 如何将蚂蚁和大象优雅的装进冰箱里

    这一阵子真是偷懒,无时无刻不和自己身体中的懒癌做斗争.最终我还是被打败了,星期天两天几乎都是荒废过去的,在空闲的时候实际上我内心也是有点焦虑的,不知道去怎么度过这时间.学习吧又不想学习,看电视娱乐吧也 ...