Nginx + Supervisord を使用して、SSL の背後にある django サイトをホストしています。サイト インデックスは正常に読み込まれます。ローカル サーバーを使用して HTTPS を使用しなくても、すべてローカルで正常に動作します。私はDjango 1.4.2を使用しています
何らかの理由で、奇妙なリダイレクトが発生します。
管理者を使用しているときにアイテムを編集すると、ホームページにリダイレクトされます。保存のために新しいアイテムを送信すると、404 が返されます (ただし、データは保存されます)。
管理者以外: ここでも、フォームを送信すると、「成功」ではなくホームページに戻ります。
ホームページに行く理由は説明できます。私の nginx は、http 以外のすべてのトラフィックをhttps://localhost
301 リダイレクトでリダイレクトします。したがって、django は場所に安全な URL が必要だとは考えていないと思います。
問題は、django が安全な URL を想定していないか、request.is_secure が False であることです。
私はこれに注意しましたSO Nginxの背後にあるHTTPSを介したDjango管理者へのアクセス プロキシパスの変更を行いましたが、これを処理するために何もしないと思います。でもここはそのまま。
設定.py
SESSION_COOKIE_SECURE = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')
CSRF_COOKIE_SECURE = True
警告: 私は django にかなり慣れていません。