nginxの(nginxのモジュールngx_file_md5)大きなファイルのMD5値を取得します

追加されたHTTPプロトコル のContent-MD5 HTTPの ヘッダが、nginxのは、この機能をサポートしていない、と関係者はそれを明確に、なぜ、この機能は増加しないことを作ったのですか?各要求は、ソフトウェアの目的に反することを行うことが絶対に望んでいないMD5値、パフォーマンス知らnginxのを計算するためにファイル全体を読み込む必要があるため。ただし、一部のアプリケーションは、必要性は、現在のファイルをダウンロードすることにより、いくつかの文書の正しさを検証するために、その後、正しい比較で現在のファイルのMD5値を計算します。帯域幅のリソースの無駄も多くの時間を無駄にしているだけでなく。ソリューションは、ユーザーが開発需要がある ファイル-MD5 モジュールが。1.モジュールファイル-MD5をダウンロード
    # cd /usr/local/src
    # wget https://github.com/cfsego/file-md5/archive/master.zip -O file-md5-master.zip
    # unzip file-md5-master.zip
2.インストールモジュールファイル-MD5
    # wget http://nginx.org/download/nginx-1.4.2.tar.gz
    # tar -xzf nginx-1.4.2.tar.gz
    # cd nginx-1.4.2
    # ./configure --prefix=/usr/local/nginx-1.4.2  --add-module=../file-md5-master
    # make
    # make isntall
すでにnginxのをインストールしている場合は、唯一の「を具体的に参照するファイルのMD5モジュールを追加する必要があり 、サードパーティ製のモジュールをインストールするには、どのようにnginxの HTTPレスポンスヘッダに追加の設定ファイル-MD5 3.1 MD5に」
    server {
        listen       80;
        server_name  test.ttlsa.com;
        root /data/site/test.ttlsa.com;
    
        # for add content-md5 to http header
        location ~ /download
        {
                add_header    Content-MD5    $file_md5;
        }
    }
すべての要求は、要求をダウンロードし、HTTPヘッダーMD5に対応しているのContent-MD5、この文書の値を大きく、次のテストを参照してください。
    # curl -I test.ttlsa.com/download/1.exe   
    HTTP/1.1 200 OK
    Server: nginx
    Date: Wed, 26 Feb 2014 03:00:05 GMT
    Content-Type: application/octet-stream
    Content-Length: 1535488
    Last-Modified: Mon, 24 Feb 2014 10:08:10 GMT
    Connection: keep-alive
    ETag: "530b1a0a-176e00"
    Content-MD5: 6adda4a06dbad3ac9b53a08f4ff9c4f8
    Accept-Ranges: bytes
私たちは、Content-MD5見ることができます:6adda4a06dbad3ac9b53a08f4ff9c4f8を、これはコンテンツに直接応答で3.2のMD5値1.EXEファイルのMD5値です。
    server {
        listen       80;
        server_name  test.ttlsa.com;
        root /data/site/test.ttlsa.com;

        # for add content-md5 to http header
        location ~ /download
        {
            if ( $arg_md5 ~* "true" ){
                echo $file_md5;
            }
        }
    }
ここでは、直接MD5値出力エコーは(エコーモジュールの追加インストールが必要)、ちょうどMD5値を取得するためにダウンロードしたファイル&MD5 = trueを追加パラメータの後ろに、使用時に、パラメータが心を定義することができます。のは、それをテストしてみましょう。
    # curl test.ttlsa.com/download/1.exe?md5=true   
    6adda4a06dbad3ac9b53a08f4ff9c4f8
同じMD5を取得する第1の方法に直接MD5値、。4.最後に、この方法は、nginxのモジュールが使用され、この方法は不十分なサポートを有し、各要求は、MD5値の再計算を必要とします。彼に圧力を減らしたい、あなたはキャッシュnginxのを追加したり、借りて、memcacheのLUAやPerlモジュールを使用することができ、我々はあなたが運転して生存期間の維持を支援していきたいと考えています。プロジェクトアドレスします。https://github.com/cfsego/file-md5プロジェクトのドキュメントします。https://github.com/cfsego/file-md5/blob/master/READMEウェブサイト:生存時間の運用・保守

ます。https://my.oschina.net/766/blog/211249で再現

おすすめ

転載: blog.csdn.net/weixin_33798152/article/details/91547478