よくあるモジュール、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.git.
実例1:
nginx構成を追加する
認証が追加されました.
実例2:
バックエンドサーバが戻ったときの応答ヘッダとメモリ(u)を使用します.setheadersコマンド時と同時に応答ヘッダの値がmore(u)になります.setheadersが交替したら、同じ応答ヘッドが二つ同時に現れなくなります.
headers-more-inxモジュールでよく使われる操作コマンドはまだたくさんあります.例えば、more_setheaders、more_clear_headers、more_setinput_headers、more_clear_input_headersなど
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は戻り値を入れ替えます.
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;
意味:応答メッセージに戻る前に指定された応答ヘッダをクリアします.
3.HTTP要求ヘッダの設定
指令:モーニングコールsetinput_headers
文法:モーニングコールsetinput_headers‘Host:testinx.com’;
環境:http、server、location、location if
実行フェーズ:rewritetail
意味:Rewrite段階において要求が実行され、最後まで実行されると、要求ヘッダが追加され、要求と共に次の段階に到達する.
例は以下の通りです
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_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
インストール時に直接コンパイルすればいいです.次のようになります.
注意:多くのサードパーティモジュールはコンパイル時にngx_に加入しなければなりません.develkitモジュールは、ngx_のためにdevelkitはNgixサーバーの核心機能を拡張しています.多くの第三者モジュールはそれに基づいて実現しています.
Detial
1、変数の設定:
変数指令の設定:セットダウンif_empty
文法:セットif_empty$dst
環境:location、location if
実行フェーズ:rewrite
例は以下の通りです
このモジュールを使わずに直接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をコンパイルするときだけ、
依存ライブラリ:libgd(gddeverl)は、CentOSシステムでyumにインストールすればいいです.
具体的な使用必要に応じて、公式サイトの説明と使用マニュアルを確認することができます.
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.git.
[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構成を追加する
more_set_headers 'Cache-Control : 1000';
認証が追加されました.
実例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など
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';
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段階において要求が実行され、最後まで実行されると、要求ヘッダが追加され、要求と共に次の段階に到達する.
例は以下の通りです
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.実戦経験第三者モジュールset-misc-nginxはrewrite段階で使用され、変数、URL変換、乱数の生成、SQL注入の防止、復号、符号化など多くの機能を備えています.
install and overview
このモジュールのアドレスはhttps://github.com/openresty/set-misc-nginx-module.git
インストール時に直接コンパイルすればいいです.次のようになります.
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
注意:多くのサードパーティモジュールはコンパイル時にngx_に加入しなければなりません.develkitモジュールは、ngx_のためにdevelkitはNgixサーバーの核心機能を拡張しています.多くの第三者モジュールはそれに基づいて実現しています.
Detial
1、変数の設定:
変数指令の設定:セットダウンif_empty
文法:セットif_empty$dst
環境:location、location if
実行フェーズ:rewrite
例は以下の通りです
このモジュールを使わずに直接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、実戦経験
install and overview
Nginnxはngx_を使用することができます.http_イメージ.イメージfilter_moduleは画像を切断し、動画処理のためのサポートを提供します.
インストール方式:Ngixをコンパイルするときだけ、
--with-http_image_filter_module
を追加すればいいです.依存ライブラリ:libgd(gddeverl)は、CentOSシステムでyumにインストールすればいいです.
具体的な使用必要に応じて、公式サイトの説明と使用マニュアルを確認することができます.