いくつかのDjango=プロキシ(ApacheとNginx)を経由するセットアップがあり、最終的に実際のDjango=ランタイムになります。
HTTPSがネットワークに接続されても、エンドツーエンドでHTTPSを使用する必要があります。他のセットアップでの成功とパフォーマンスのためにGunicornを再検討しましたが、一貫性を保つためにHTTPSエンドツーエンドでテストする必要がありました。
トポロジは次のとおりです。
https://foo.com -> [公開プロキシ]->(https)-> [内部サーバー https:// 192 ...:8001]
自己署名証明書を使用してHTTPSでリッスンするようにGunicornを構成するにはどうすればよいですか?
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
非常に遅い返信ですが、これに出くわした他の人のために、上記の「[公開対面プロキシ]」としてnginxを使用する別のオプションがあります。
ポート443で着信SSLトラフィックを処理するようにnginxを構成し、内部ポートでgunicornに proxy_pass を設定します。外部トラフィックは暗号化され、nginxとgunicornの間のトラフィックはとにかく公開されません。これは非常に簡単に管理できます。