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. [C#]Winform后台提交数据且获取远程接口返回的XML数据,转换成DataSet

    #region 接口返回的Xml转换成DataSet /// <summary> /// 返回的Xml转换成DataSet /// </summary> /// <par ...

  2. 读Zepto源码之Stack模块

    Stack 模块为 Zepto 添加了 addSelf 和 end 方法. 读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 ...

  3. Java IO编程全解(一)——Java的I/O演进之路

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7419117.html JDK1.4之前的早期版本,Java对I/O的支持并不完善,开发人员在开发高性能I/O ...

  4. 阿里巴巴Java规约插件试用

    阿里Java开发规约Eclipse插件介绍 阿里巴巴集团配合<阿里巴巴Java开发手册>PDF终极版开发的IDE插件,目前包括IDEA插件.Eclipse插件. 安装 检查环境 插件要求: ...

  5. Java IO(IO流)-1

    IO流 第一部分 (outputStream/InputStream Writer/Redaer) IO流对象中输入和输出是相辅相成的,输出什么,就可以输入什么. IO的命名方式为前半部分能干什么,后 ...

  6. 用 Eclipse 搭建一个简单的 Maven spring mybatis 项目(包含测试用例)

    1: 先搭建一个Maven项目: 创建好后的目录: 2: 配置pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0.0& ...

  7. HTML5-前端开发很火且工资很高?

    前言 晚上逛论坛看到一篇对从事HTML5前端开发的文章写的非常不错,和目前的市场形势差不多,然后我在其基础上给大家进行加工总结一下分享给大家.今天我们谈论的话题是<<为什么从事HTML5前 ...

  8. 如何用CropBox实现头像裁剪并与java后台交互

    如何用CropBox实现头像裁剪并与java后台交互 参考网站:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 参考: http://blo ...

  9. MySql中利用insert into select 准备数据uuid主键冲突

    MYSQL 中表1需要准备大量数据,内容主要取自表2,id必须为32位uuid (项目所有表都是这样,没办法), 准备这样插入: INSERT INTO TBL_ONE (ID, SOID, SNAM ...

  10. JS框架设计读书笔记之-动画

    基础概念 CSS样式可分为两种,一种值接近无限的集合(color,width),一种值只有几种(display),可以进行计算的样式,产生了动画效果.\ 1. 动画的第一步是获得元素的精确样式值. 2 ...