django-rest-framework の使用。nginx の背後で本番環境で実行すると、HTTP 403 エラーが発生します。APIView から継承して GET 操作をサポートする特定のビューを呼び出すと、次のようになります。
{"detail": "Invalid username/password"}
しかし...私はこれをブラウザでしか取得しません。まったく同じ URL に curl を使用すると、取得できません。Chrome と Firefox の両方で、URL を直接ヒットするか、AJAX 経由で URL を読み込むかに関係なく、このエラーが発生します。
最初に管理者アカウントを使用して Django Admin 経由でログインすると、エラーは発生しません。
また、これは nginx の背後から実行している場合にのみ得られます。Django dev サーバーまたは gunicorn のいずれかで実行し、ポートを直接ヒットした場合、私は問題なく、匿名で URL をヒットできます。この前に nginx を配置すると、同じ gunicorn/runserver に転送するために、このエラーが発生します。
多分それは私のnginx proxy_pass設定と関係がありますか?
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Django Rest Framework 2.2.6、Django 1.5、nginx 1.2.7 を実行しています。
残りのフレームワークでスロットリングをばかげた高い数値に設定し、デフォルトですべて開いているように見えるアクセス許可を調べました(ただし、明示的にも設定されています)。
誰かが私を正しい方向に向けることができますか?
ありがとう!
ルード。