2
Nginxは1128バイトを超えるヘッダー行を静かにドロップします
NginxをuWSGIアプリケーション(Djangoアプリ)のリバースプロキシとして設定しています。Djangoアプリがホストしているコンテンツの性質により、URLが長くなる場合があります。本当に長い。このため、RefererHTTPヘッダーも長くなる場合があります。 ここに問題があります。Nginxは、Referer1128バイトを超えると、クライアントから受信したものをドロップします(試行錯誤により発見)。1128バイト以下はすべてアップストリームサーバーに渡されます。より大きなものはすべてドロップされます。DjangoのCSRF保護メカニズムには無傷が必要なため、これは問題Refererです。 ここに私のNginx設定の関連セクションがあります。ファイル: location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header Referer $http_referer; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } Nginxのドキュメントを調べましたが、クライアントヘッダーの最大長を制御する設定が見つかりませんでした。イライラして、私はNginxのソースコードを注ぐことさえ始めました。 NginxをReferer変更せずにアップストリームサーバーに渡すために何をする必要がありますか? バージョン情報 Ubuntu 14.04サーバー64ビット nginx / 1.4.6(Ubuntu) uWSGI 1.9.17.1-debian Django 1.7.0