2010-05-18 32 views

回答

2

我會讓http服務器處理ssl傳輸。

5

gevent.wsgi模塊沒有內置的SSL支持。如果你使用它,把它放在nginx後面,它將通過HTTPS接收請求,但是使用非加密的HTTP將它們代理到你的gevent應用程序。

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() 
+0

的wsgiserver_ssl.py的更新的鏈接https://github.com/surfly/gevent/blob/master/examples/wsgiserver_ssl.py – auny 2013-12-06 14:55:17

相關問題