よくあるモジュール、headers-more-inx and set-misc-inxなど


記事の目次
  • nginx-よくあるモジュール、headers-more-inx and set-misc-inxなどの
  • nginx module:headers-more-inx
  • install and overview
  • Detail
  • nginx module:set-misc-nginx
  • install and overview
  • Detial
  • nginx module:ngx_http_イメージ.イメージfilter_module
  • install and overview
  • nginx–一般モジュール、headers-more-inx and set-misc-inxなど
    inx module:headers-more-inx
    install and overview
    ngx_http_headers_moduleはNginxでコンパイルする時にデフォルトで持参するモジュールで、主にadd_を含みます.headerとexpiresの二つの命令.このテンプレートの構成と使用については、以前に専門的な文書が紹介されました.記事のリンク:https://blog.csdn.net/LL845876425/article/details/102773194
    そしてngx_http_headers_moduleの2つの主要命令(aduheader,expires)の中のadd_headerコマンドは、応答ヘッダを追加するためだけに適合しており、HTTP要求ヘッダを処理するためには、第三者モジュールheaders-more-nginxを使用してもよく、HTTP要求ヘッダと応答ヘッダを追加、削除、修正するために使用することができる.このモジュールのアドレスはhttps://github.com/openresty/headers-more-nginx-module.gitnginx--常见模块,headers-more-nginx and set-misc-nginx 等_第1张图片.
    [root@network-test nginx]# ll
    total 1036
    drwxr-xr-x 6 root root    4096 Aug 24 10:59 headers-more-nginx-module
    -rw-r--r-- 1 root root 1048727 Aug 11 23:03 nginx-1.19.2.tar.gz
    [root@network-test nginx]# # git clone https://github.com/openresty/headers-more-nginx-module.git
    [root@network-test nginx]# # wget http://nginx.org/download/nginx-1.19.2.tar.gz
    [root@network-test nginx]# 
    [root@network-test nginx]# tar -xf nginx-1.19.2.tar.gz
    [root@network-test nginx]# cd nginx-1.19.2/
    [root@network-test nginx-1.19.2]# ./configure --prefix=/usr/local/nginx --add-module=../headers-more-nginx-module
    [root@network-test nginx-1.19.2]# make && make install
    
    インストールが完了したら、それを配置して、add_を実現させます.header命令のような機能です.
    実例1:
    more_set_headers 'Cache-Control : 1000';
    #        add_header Cache-Control 1000 always;   #                      。
    
    初期header;
    nginx--常见模块,headers-more-nginx and set-misc-nginx 等_第2张图片
    nginx構成を追加するmore_set_headers 'Cache-Control : 1000';nginx--常见模块,headers-more-nginx and set-misc-nginx 等_第3张图片
    認証が追加されました.
    nginx--常见模块,headers-more-nginx and set-misc-nginx 等_第4张图片
    実例2:
    more_set_headers -s '200 301' 'Cache-Control:1000';
    
    上記の構成は、add_header Cache-Control 1000;に相当し、状態コードが200または301であるときに応答ヘッダが出力され、応答ヘッダの制御が強化されることを示している.
    バックエンドサーバが戻ったときの応答ヘッダとメモリ(u)を使用します.setheadersコマンド時と同時に応答ヘッダの値がmore(u)になります.setheadersが交替したら、同じ応答ヘッドが二つ同時に現れなくなります.
    headers-more-inxモジュールでよく使われる操作コマンドはまだたくさんあります.例えば、more_setheaders、more_clear_headers、more_setinput_headers、more_clear_input_headersなど
    nginx--常见模块,headers-more-nginx and set-misc-nginx 等_第5张图片 nginx--常见模块,headers-more-nginx and set-misc-nginx 等_第6张图片
    Detail
    1.HTTP状態に応じて応答ヘッダを制御する
    指令:モーニングコールsetheaders
    文法:モーニングコールsetheaders[-t]…[-s]…
    デフォルト:なし
    環境:http、server、location、location if
    実行フェーズ:output-header-filter
    例:モーニングコールsetheaders-s 404-s‘500 502’‘Result:error’‘F:X-re’;
    意味:応答メッセージに戻る前に応答ヘッダを追加または置換する.
    例の意味は、応答状態コード(−sパラメータの役割が対応する状態コードにマッチすることである)が404、500または502である場合、追加’Result:error’と’F:X−re’の2つの応答ヘッダが、バックエンドサーバがいずれかの応答ヘッダに戻ると、more(u)setheadersは戻り値を入れ替えます.
    more_set_headers -s 404  -s '500 502' 'Result:error' 'F:X-re';
    
    nginx--常见模块,headers-more-nginx and set-misc-nginx 等_第7张图片
    2.HTTP状態に応じて応答ヘッダをクリアする
    指令:モーニングコールclear_headers
    文法:モーニングコールclear_headers[-t]…[-s]…
    デフォルト:なし
    環境:http、server、location、location if
    実行フェーズ:output-header-filter
    例:モーニングコールclear_headers-s 200-t‘text/plin’F Result;
    意味:応答メッセージに戻る前に指定された応答ヘッダをクリアします.
    more_clear_headers -s 200 -t 'text/plain' F Result;
    more_clear_headers -s 200 -t 'X-*';
    
    例では、応答状態コードが200の場合、’text/plin’、F、Resultの3つの応答ヘッダをクリアするという意味である.指定された応答ヘッダは、−sパラメータ(すなわち状態コードと一致しない)を使用しないと、どの状態コードでも消去されます.この命令は、例えばX−先頭の応答ヘッダをクリアするためにワイルドカードを使用することもでき、more_clear_headers -s 200 -t 'X-*'を使用すればよい.
    3.HTTP要求ヘッダの設定
    指令:モーニングコールsetinput_headers
    文法:モーニングコールsetinput_headers‘Host:testinx.com’;
    環境:http、server、location、location if
    実行フェーズ:rewritetail
    意味:Rewrite段階において要求が実行され、最後まで実行されると、要求ヘッダが追加され、要求と共に次の段階に到達する.
    例は以下の通りです
    nginx--常见模块,headers-more-nginx and set-misc-nginx 等_第8张图片
    4.HTTP要求ヘッダをクリアする
    指令:モーニングコールclear_input_headers
    文法:モーニングコールclear_input_headers-t Cache-Coontrol;
    環境:http、server、location、location if
    実行フェーズ:rewrite tail
    意味:rewrite段階で要求が実行され最後まで実行されると、合致する要求ヘッドがCachControlであれば消去される.
    このコマンドはワイルドカードをサポートしています.例えば、「more caru uheaders'Test*」というように、Testの先頭の要求ヘッドですべてクリアされます.
    more_clear_input_headers 'Test*';
    
    5.実戦経験
  • コマンドmore_についてclear_headersクリア応答ヘッド操作は、varnishが持参する応答ヘッダ、またはPHPフレームが生成する応答ヘッダなどのサービス内部の敏感情報を隠すために使用されてもよい.実際のサービスでは、まず、クライアントに伝えるべき応答ヘッダ情報を決定し、クライアントに伝える必要がない情報をこの方法でクリアすることができる.
  • コマンドmore_についてsetinput_headersとmore_clear_input_headers;この二つのコマンドはいずれもrewrite tailの段階で使用されますが、同じ実行段階でこの二つのコマンドを使用すると、コマンドの前後の順序で実行されます.
  • headers-more-inxモジュールの命令は、すべて大文字と小文字を区別するので、大文字と小文字を区別するように注意します.
  • inx module:set-misc-inx
    第三者モジュールset-misc-nginxはrewrite段階で使用され、変数、URL変換、乱数の生成、SQL注入の防止、復号、符号化など多くの機能を備えています.
    install and overview
    このモジュールのアドレスはhttps://github.com/openresty/set-misc-nginx-module.git
    インストール時に直接コンパイルすればいいです.次のようになります.
    nginx--常见模块,headers-more-nginx and set-misc-nginx 等_第9张图片
    git clone https://github.com/openresty/set-misc-nginx-module.git
    git clone https://github.com/vision5/ngx_devel_kit.git
    cd nginx-1.19.2/
    ./configure --prefix=/usr/local/nginx --add-module=../ngx_devel_kit --add-module=../set-misc-nginx-module
    make && make install
    
    nginx--常见模块,headers-more-nginx and set-misc-nginx 等_第10张图片
    注意:多くのサードパーティモジュールはコンパイル時にngx_に加入しなければなりません.develkitモジュールは、ngx_のためにdevelkitはNgixサーバーの核心機能を拡張しています.多くの第三者モジュールはそれに基づいて実現しています.

    Detial
    1、変数の設定:
    変数指令の設定:セットダウンif_empty
    文法:セットif_empty$dst
    環境:location、location if
    実行フェーズ:rewrite
    例は以下の通りです
    nginx--常见模块,headers-more-nginx and set-misc-nginx 等_第11张图片
    このモジュールを使わずに直接Ngixで配置するのは面倒くさいです.
    次の他の機能命令は使う機会が多くないからです.展示をする必要な時は実際に調べたらいいです.
    2、SQL注入防止
    指令:セットアップ「te」sqlstr
    3、文字列の非変換と変換
    指令:セットアップunescape_uri
    4、キー値に基づくクラスタセグメント
    Nginxは、APIサービスの配置と開発を容易にするために、第三者モジュールを介してデータベースと相互作用することができる.データベース内のデータをスライスして読み取る必要がある場合は、コマンドset_を使用することができます.hashed_アップストリームを配置します.
    指令:セットアップhashed_アップストリーム
    5、ベースコード
    指令:セットアップエンコドbase 32
    6、md 5コード化
    指令:セットアップmd 5
    7、乱数を生成する
    指令:セットアップらんどm
    指令:セットアップsecure_ランドムアルファアール
    指令:セットアップsecure_ランドムlcarpha
    8、ローカル時間の出力
    指令:セットアップlocal_Today
    9、実戦経験
  • コマンドセットについてif_emptyはできるだけif文の使用を減らして、set_を使います.if_emptyは、NFinxの可読性を向上させることができる.
  • コマンドセットについて「te」sqlstrがNginxとデータベースを直接的に相互作用させたら、set uを確保します.「te」sqlstr命令の存在はSQL注入を防ぐためにある.
  • コマンドセットについてunescape_uriとset_エスケープuriはデータを処理する際に、URLのように、転送と非転送の統一性を確保し、前のコードが転送されないようにする必要がありますが、後の部分では、非転送データが使用される場合があります.
  • コマンドセットについてhashed_このタイプのスペーサは比較的簡単で、高さには関わりません.あるuplstreamサービスが全部「キャンセル」されたら、エラーが発生します.したがって、デポジットを設計する際に十分な可能性を考慮しなければならない.
  • nginx module:ngx_http_イメージ.イメージfilter_module
    install and overview
    Nginnxはngx_を使用することができます.http_イメージ.イメージfilter_moduleは画像を切断し、動画処理のためのサポートを提供します.
    インストール方式:Ngixをコンパイルするときだけ、--with-http_image_filter_moduleを追加すればいいです.
    依存ライブラリ:libgd(gddeverl)は、CentOSシステムでyumにインストールすればいいです.
    具体的な使用必要に応じて、公式サイトの説明と使用マニュアルを確認することができます.