5

SSLの背後に配置したいWSGIアプリがあります。私のWSGIサーバーはgeventです。

この場合、SSLを介してアプリを提供するための良い方法は何でしょうか?

4

3 に答える 3

9

gevent.wsgiモジュールにはSSLサポートが組み込まれていません。使用している場合は、HTTPS経由でリクエストを受信するnginxの背後に配置しますが、暗号化されていないHTTPを使用してgeventアプリにプロキシします。

gevent.pywsgiモジュールにはSSLサポートが組み込まれており、互換性のあるインターフェイスがあります。サーバーがSSLを使用するようにkeyfileと引数を設定します。certfile次に例を示します。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()
于 2010-05-30T16:11:50.410 に答える
3

geventにsslモジュールが追加されたようです。geventの上にWebサーバーを実装している場合は、httpハンドラーに渡す前に、そのモジュールのsslソケットクラスで着信接続をラップするように変更できると思います。

http://blog.gevent.org/2010/02/05/version-0-12-0-released/

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

それ以外の場合は、いつでも古き良きapache+mod_wsgiを使用してwsgiアプリを提供できます。

于 2010-05-28T06:49:30.263 に答える
2

httpサーバーにSSLトランスポートを処理させます。

于 2010-05-18T12:42:57.687 に答える