ポート80で完全に正常に機能するpython/gunicornベースのサイトでSSLを機能させるのに問題があります。proxy_pass
を使用してトラフィックをアップストリームに送信しています。
これまでに完了した手順
/etc/ssl
にnginxを含むマシンにコピーされた他のApacheサイトで動作する、インコモンのワイルドカード証明書バンドル。バンドル内の3つのファイルは、domain.crt
、domain.key
、incommon.crt
です。domain.chain.crt
を使用してcat domain.crt incommon.crt > domain.chain.crt
というチェーン証明書を作成しました775
権限と私のsites-available
構成と同じ所有権を設定します。sites-available
の下に次の構成を作成しました:
server {
listen 80;
server_name <subdom.domainname.com>;
location / {
include proxy_params;
proxy_pass https://unix:/var/www/developmentfolder/sandbox.sock;
proxy_ssl_certificate /etc/ssl/domain.chain.crt;
proxy_ssl_certificate_key /etc/ssl/domain.key;
}
}
問題
現在、80または443でサイトにアクセスできません。nginxのエラーログには何も表示されず、gunicorn
のログファイルも表示されません。 Nginxの構文チェックは毎回パスします。ここで間違っていることはありますか?
Nginxバージョンは1.10.3です
あなたは物事を間違った方法で行っています。 httpsを機能させたいが、httpsプロトコルを介してローカルソケットを使用するようにポート80を構成するとします。それができるかどうかさえわかりませんが、ファイルベースのUNIXドメインソケットを介してnginxとgunicorn間の接続を暗号化することで実現できます。ブラウザとWebサーバー間の接続には何もしません。
あなたがしたいすべてがhttps経由であなたのサイトを利用可能にすることであるなら、なぜ 公式ガイド に従って、それが機能したらもっと複雑なことをしないのですか?.
これが機能していて、Webサーバーとgunicornの間の接続を暗号化することに真剣に取り組んでいる場合は、UNIXドメインソケットは使用せず、 SSL構成 およびHTTPS接続を使用します。