3

Content-Lengthヘッダーが411エラーを返さずにnginxproxy_passとPUTで問題が発生しています。

これをテストするために実行するもの:

# curl -XPUT http://localhost:8080/
<html>
<head><title>411 Length Required</title></head>
<body bgcolor="white">
<center><h1>411 Length Required</h1></center>
<hr><center>nginx/1.1.19</center>
</body>
</html>
# touch temp
# curl -X PUT http://localhost:8080/ -T temp
{"response": "ok"}

関連する構成:

# Proxy to Backend Server
server {
    listen localhost:8080;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://backend_server;
    }
}

私は同じ問題のように見えるこの投稿を見つけました:

http://forum.nginx.org/read.php?2,72279,72279#msg-72279

Content-LengthヘッダーなしでPUTリクエストをプロキシするためにnginxを取得する方法はありますか?

新しいバージョンのnginxはこのバグ/制限の影響を受けませんか?

4

1 に答える 1

1

にアップグレードするnginx >= 1.4.1(1.3.9または1.4.0十分ですが、@elhefe にセキュリティ上の問題があります - コメントを参照してください)、ここで説明したようにNginxHttpChunkinModuleをインストールします。Debian および RedHat ファミリ用の公式パッケージがあります。

デビアン:

  • wheezy バックポート (現在は 1.4.4-1)

    に追加/etc/apt/sources.list:

    deb http://ftp.debian.org/debian/ wheezy-backports main
    

    選択した nginx バージョンを実行してインストールします ( nginx-fullnginx-lightnginx-naxsi)

    apt-get update
    apt-get -t wheezy-backports install nginx-full
    
  • nginx.org パッケージ (安定版は現在 1.4.4):

    wget http://nginx.org/keys/nginx_signing.key
    apt-key add nginx_signing.key
    

    に追加/etc/apt/sources.list:

    deb http://nginx.org/packages/debian/ wheezy nginx
    deb-src http://nginx.org/packages/debian/ wheezy nginx
    

    現在の nginx パッケージを削除します。

    apt-get remove nginx-full nginx-common
    

    パッケージリストを更新します:

    apt-get update
    apt-get install nginx
    

    Debian ライクな動作変更の更新について/etc/nginx/nginx.conf

    user  www-data;
    

    httpセクションの最後に追加

    include /etc/nginx/sites-enabled/*;
    
于 2013-12-14T12:02:41.530 に答える