tornado+WSGI+Apache
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的更多相关文章
- 宝塔面板+djiango+mod wsgi +apache 配置多项目站点
在一台服务器上同时有多个djiango项目,那么就需要配置多站点,利用不同的域名不同的端口 同时存在多个项目. 环境,centos + 宝塔面板+apache+django 1.在centos环境下 ...
- 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 ...
- 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 ...
- tornado 入门
Overview FriendFeed是一款使用 Python 编写的,相对简单的 非阻塞式 Web 服务器.其应用程序使用的 Web 框架看起来有些像 web.py 或者 Google 的 weba ...
- tornado详细介绍
Tornado Web服务器概览,tornado教程,tornado开发教程 概览 漏洞 | 漏洞目录 | 安全文档 Overview 下载和安装 模块索引 主要模块 底层模块 Tornado 攻略 ...
- Tornado 中的 get() 或 post() 方法
---恢复内容开始--- Tornado 中的 get() 或 post() 方法 请求处理程序和请求参数 Tornado 的 Web 程序会将 URL 或者 URL 范式映射到 tornado.we ...
- Flask, Tornado, GEvent, 以及它们的结合的性能比较
Flask, Tornado, GEvent, 以及它们的结合的性能比较 英文: http://blog.wensheng.com/2011/10/performance-of-flask-torna ...
- Tornado模块分类和各模块之间的关系
1. Core web framework tornado.web — 包含web框架的大部分主要功能,包含RequestHandler和Application两个重要的类 tornado.https ...
- 将Flask应用程序部署在nginx,tornado的简单方法
来自:http://www.xuebuyuan.com/618750.html 在网上搜索了一下部署flask应用的方法,大部分是用wsgi部署在nginx上面,部署了很久,都没有成功,可能是我领悟能 ...
随机推荐
- Linux Redis集群搭建与集群客户端实现(Python)
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- Scala 运算符和集合转换操作示例
Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为 ...
- Appium-desktop安装与使用
Appium-desktop是什么? 项目描述: Appium Server and Inspector in Desktop GUIs for Mac, Windows, and Linux. Ap ...
- UWP appButtonBar样式
UWP 的appButtonBar使用<AppBarButton Icon = "Next" Label = "Next" /> Icon是 Sym ...
- 二:Linux 的基本命令、VI编辑器、Linux中软件安装
Linux 的基本命令 1. 文件操作 a) Windows 是多根的文件系统,物理上是 1 到多块硬盘,逻辑上分为 C.D.E--盘, 每个盘都是一棵树.Linux 是单根的文件系统,不分 CDE ...
- C++每次读取一行字符串输入(学习笔记) (转)
1. 面向行的输入:getline()getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾. cin.getline(Arr, 20) // Arr为用来输入行的数组的名称: ...
- Log4j各级别日志重复打印的问题
今天在配置Log4j日志的时候,发现日志重复打印的问题.网上查了很多资料,发现介绍Log4j配置的文章数量不少,但提到这个问题的文章却寥寥,解决了自己的问题以后,赶紧记录一下. 原文地址:http:/ ...
- HMAC-SHA256 & MD5 In C#
C#中两个常用的加密方法: 个人Mark,仅作参考. public static class Extends { /// <summary> /// HMAC SHA256 /// < ...
- 在Owin Self-Hosing下实现每个请求中共享上下文(数据)
问题 这几天在做公司的外部WebApi网关,由于使用了OAuth2.0,所以不得不使用Owin来部署网关. 而涉及到请求上下文的问题,为了使业务层能获取到请求头的信息,又不与网关耦合,决定把请求信息写 ...
- (原创)(四)机器学习笔记之Scikit Learn的Logistic回归初探
目录 5.3 使用LogisticRegressionCV进行正则化的 Logistic Regression 参数调优 一.Scikit Learn中有关logistics回归函数的介绍 1. 交叉 ...