我有一个WSGI应用程序,我想后面SSL地方。我的WSGI服务器的 GEVENT

什么将一个很好的方式,通过SSL服务的应用程序在这种情况下呢?

有帮助吗?

解决方案

它看起来像GEVENT现在有一个SSL模块。如果您对GEVENT的基础上实现的web服务器,我想你可以修改它传递到HTTP处理程序之前包裹与模块的SSL套接字类传入连接。

HTTP://blog.gevent。组织/ 2010/02/05 /版本-0-12-0发布/

http://www.gevent.org/gevent.ssl.html

否则,你总是可以使用好老的Apache + mod_wsgi的服务于您的WSGI应用程序。

其他提示

gevent.wsgi 模块不具有内置的SSL支持。如果你使用它,用它把后面的nginx这将收到通过HTTPS请求,但代理到您GEVENT应用非加密的HTTP。

gevent.pywsgi 模块不具有内置的支持SSL和具有兼容的接口。设置keyfilecertfile参数,使服务器使用SSL。下面是一个例子: wsgiserver_ssl.py

#!/usr/bin/python
"""Secure WSGI server example based on gevent.pywsgi"""

from __future__ import print_function
from gevent import pywsgi


def hello_world(env, start_response):
    if env['PATH_INFO'] == '/':
        start_response('200 OK', [('Content-Type', 'text/html')])
        return [b"<b>hello world</b>"]
    else:
        start_response('404 Not Found', [('Content-Type', 'text/html')])
        return [b'<h1>Not Found</h1>']

print('Serving on https://127.0.0.1:8443')
server = pywsgi.WSGIServer(('0.0.0.0', 8443), hello_world, keyfile='server.key', certfile='server.crt')
# to start the server asynchronously, call server.start()
# we use blocking serve_forever() here because we have no other jobs
server.serve_forever()

我先给http服务器处理的SSL传输。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top