web-dev-qa-db-ja.com

httpsでgunicornを実行していますか?

いくつかのDjango=プロキシ(ApacheとNginx)を経由するセットアップがあり、最終的に実際のDjango=ランタイムになります。

HTTPSがネットワークに接続されても、エンドツーエンドでHTTPSを使用する必要があります。他のセットアップでの成功とパフォーマンスのためにGunicornを再検討しましたが、一貫性を保つためにHTTPSエンドツーエンドでテストする必要がありました。

トポロジは次のとおりです。

https://foo.com -> [公開プロキシ]->(https)-> [内部サーバー https:// 192 ...:8001]

自己署名証明書を使用してHTTPSでリッスンするようにGunicornを構成するにはどうすればよいですか?

34
dmyung

GunicornはSSLをサポートするようになりました バージョン17.0以降 。次のようにhttpsでリッスンするように構成できます。

$ gunicorn --certfile=server.crt --keyfile=server.key test:app

--bindを使用してポート80でリッスンしている場合は、ポートを443(HTTPS接続のデフォルトポート)に変更することを忘れないでください。例えば:

$ gunicorn --certfile=server.crt --keyfile=server.key --bind 0.0.0.0:443 test:app
65
GregM

非常に遅い返信ですが、これに出くわした他の人のために、上記の「[公開対面プロキシ]」としてnginxを使用する別のオプションがあります。

ポート443で着信SSLトラフィックを処理するようにnginxを構成し、内部ポートでgunicornに proxy_pass を設定します。外部トラフィックは暗号化され、nginxとgunicornの間のトラフィックはとにかく公開されません。これは非常に簡単に管理できます。

17
mafrosis