1、原理

2、安装mod_wsgi

http://pan.baidu.com/s/1sjsccWH

configure的时候会找对应的python脚本,默认是/usr/bin/python

生成mod_wsgi.so,拷贝到apache的modules下面

3、apache的配置:

LoadModule wsgi_module    modules/mod_wsgi.so  

WSGIScriptAlias /myapp /usr/local/sinasrv2/var/www/wsgi-scripts/myapp.wsgi                                                   

<Directory "/usr/local/sinasrv2/var/www/wsgi-scripts/">
AllowOverride all
Options Indexes FollowSymLinks ExecCGI
Order allow,deny
SetHandler wsgi-script
Allow from all
</Directory>

4、wsgi的脚本:

#!/usr/bin/env python26

import tornado.web
import tornado.wsgi
import wsgiref.simple_server
import wsgiref.handlers class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world,AAAA,WSGI") def application(environ, start_response):
if 'SCRIPT_NAME' in environ:
tornado_app = tornado.wsgi.WSGIApplication([
(r"/myapp", MainHandler),
])
return tornado_app(environ,start_response)
if __name__ == "__main__":
tornado_app = tornado.wsgi.WSGIApplication([
(r"/myapp", MainHandler),
]) server = wsgiref.simple_server.make_server('',, application)
server.serve_forever()

必须设置application函数,否则会出现下面的错误信息:

[Wed Aug  :: ] [error] [client 10.217.12.113] mod_wsgi (pid=): Exception occurred processing WSGI script '/us
r/local/sinasrv2/var/www/wsgi-scripts/myapp.wsgi'

5、测试

6、遇到的问题

[Wed Aug 13 16:29:57 2014] [error] [client 10.217.87.146] Traceback (most recent call last):
[Wed Aug 13 16:29:57 2014] [error] [client 10.217.87.146] File "/usr/local/sinasrv2/var/www/wsgi-scripts/myapp.wsgi", line 11, in <module>
[Wed Aug 13 16:29:57 2014] [error] [client 10.217.87.146] os.chdir(sys.path[0])
[Wed Aug 13 16:29:57 2014] [error] [client 10.217.87.146] OSError: [Errno 20] Not a directory: '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg'

原因在于调用的时候使用如下代码:

os.chdir(sys.path[0])

sys.path.append("./lib")

apache调用的时候path[0]为

usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg

路径引用的时候使用:

sys.path.append(os.path.dirname(__file__) + os.sep + 'lib')  

[参考文献]

1、http://pith.org/notes/2011/06/13/tornado-in-wsgi-mode-on-dotcloud/

tornado+WSGI+Apache的更多相关文章

  1. 宝塔面板+djiango+mod wsgi +apache 配置多项目站点

    在一台服务器上同时有多个djiango项目,那么就需要配置多站点,利用不同的域名不同的端口  同时存在多个项目. 环境,centos + 宝塔面板+apache+django 1.在centos环境下 ...

  2. tornado和django的结合使用 tornado Server for django WSGI APP

    #!/usr/bin/env python # Run this with # Serves by default at # http://localhost:8080/hello-tornado a ...

  3. CentOS 6.5 Python 2.6.6+Flask 用wsgi方式部署在Apache 2.2.15下

    1,安装wsgi Apache模块 easy_install mod_wsgi 2,添加/etc/httpd/conf.d/wsgi.conf LoadModule wsgi_module modul ...

  4. tornado 入门

    Overview FriendFeed是一款使用 Python 编写的,相对简单的 非阻塞式 Web 服务器.其应用程序使用的 Web 框架看起来有些像 web.py 或者 Google 的 weba ...

  5. tornado详细介绍

    Tornado Web服务器概览,tornado教程,tornado开发教程 概览 漏洞 | 漏洞目录 | 安全文档 Overview 下载和安装 模块索引 主要模块 底层模块 Tornado 攻略 ...

  6. Tornado 中的 get() 或 post() 方法

    ---恢复内容开始--- Tornado 中的 get() 或 post() 方法 请求处理程序和请求参数 Tornado 的 Web 程序会将 URL 或者 URL 范式映射到 tornado.we ...

  7. Flask, Tornado, GEvent, 以及它们的结合的性能比较

    Flask, Tornado, GEvent, 以及它们的结合的性能比较 英文: http://blog.wensheng.com/2011/10/performance-of-flask-torna ...

  8. Tornado模块分类和各模块之间的关系

    1. Core web framework tornado.web — 包含web框架的大部分主要功能,包含RequestHandler和Application两个重要的类 tornado.https ...

  9. 将Flask应用程序部署在nginx,tornado的简单方法

    来自:http://www.xuebuyuan.com/618750.html 在网上搜索了一下部署flask应用的方法,大部分是用wsgi部署在nginx上面,部署了很久,都没有成功,可能是我领悟能 ...

随机推荐

  1. OVS中arp响应的流表的实现

    总结: 1.br-int 流表总体是按照Normal 的方式,即常规的交换机的转发方式进行转发.而br-tun 交换机则主要按照流表的方式进行转发. 2.一般情况下,VM发出的ARP请求,会在该VM的 ...

  2. dotweb框架之旅 [二] - 常用对象-App(dotweb)

    dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿. dotweb包含以下几个常用对象: App(dotweb) App容器,为Web ...

  3. 第七章 DAO模式

    第七章 DAO模式 一.JDBC的封装 1.JDBC的封装: DAO位于业务逻辑和持久化数据之间,实现对持久化数据的访问.将数据库都封装起来,对外提供相应的接口 2.DAO模式的作用: 1.隔离业务逻 ...

  4. Spring MVC Ajax 复杂参数的批量传递

    要解决的问题: 如何组织客户端参数? Ajax 方法的配置属性如何定义才能传递复杂参数? 基于 SpringMVC 的服务端该如何接收? MyBatis 怎么处理批量更新? 客户端脚本 viewMes ...

  5. iOS音频格式PCM转G711u(或G711a-law)

    请尊重作者劳动成果,如需转载本博客文章请注明出处!谢谢合作!  inputData是PCM的实时数据,可以通过转码,获取到最后导出的G711u数据(sendData) NSUInteger datal ...

  6. 博客发在win10.me

    看到了http://www.win10.me/?page_id=58 说可以把自己的文章投给win10.me 我试试 抱着没有的心态 居然可以 我联系九幽,和他们说我写了很多博客,质量不好,他们说好 ...

  7. LINUX 笔记-top命令

    top命令经常用来监控linux的系统状况,比如cpu.内存的使用. top - :: up day, :, users, load average: 0.00, 0.01, 0.00 Tasks: ...

  8. UNIX发展史(BSD,GNU,linux)

    先前的一個理想 UNIX 系统自 1969 年 Ken Thompson 与 Dennis Ritchie 在美国贝尔电话实验室(Bell Telephone Laboratories)发展出雏形至今 ...

  9. angular指令的4种设计模式

    指令的功能集非常丰富,不过我们已经发现了指令的帕累托分布:使用angular编写的大量指令只会用到可用性和设计模式中很小的比例,这些指令大概可以分为4类: 只渲染指令--这些指令将渲染作用域中的数据, ...

  10. spark streaming 实例

    spark-streaming读hdfs,统计文件中单词数量,并写入mysql package com.yeliang; import java.sql.Connection; import java ...