【飘逸的Python】 在Apache2中部署Tornado应用

原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/50260237

将tornado部署在Apache上需要依赖WSGI中间件,其原理如下:

【飘逸的Python】 在Apache2中部署Tornado应用_第1张图片

具体步骤如下:

安转mod_wsgi

在linux下使用apt-get install libapache2-mod-wsgi命令即可以,安装成功后会生成mod_wsgi.so文件,该文件默认在Apache的modules目录下。

配置Apache

在Apache的配置文件/etc/apache2/apache2.conf中添加如下配置:

LoadModule wsgi_module    modules/mod_wsgi.so

WSGIScriptAlias /myapp /var/www/wsgi-scripts/myapp.wsgi 

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

添加python脚本

在上面配置的目录/var/www/wsgi-scripts/下新建myapp.wsgi文件,其内容如下:

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!")

def application(environ, start_response):
    if 'SCRIPT_NAME' in environ:
        tornado_app = tornado.web.Application([
            (r"/myapp", MainHandler),
        ])
        wsgi_app = tornado.wsgi.WSGIAdapter(tornado_app)
        return wsgi_app(environ,start_response)

if __name__ == "__main__":
    server = wsgiref.simple_server.make_server('', 8888, application)
    server.serve_forever()

重启Apache后在浏览器中测试

【飘逸的Python】 在Apache2中部署Tornado应用_第2张图片

到此,大功告成!

你可能感兴趣的:(apache,tornado,wsgi)