nginxの動的モジュール
動的モジュールは、1.9.11からNginxによって導入された機能であり、実行時間が再コンパイルではなくモジュールをロードできるようにします。 1.モジュールが動的コンパイル(-Add-Dynamic-moduleなど)をサポートしていることを確認します。 2。nginx.confの上部にload_module命令を搭載したファイルをロードします。 3.構成を確認し、リロードを有効にします。利点は、ホットスワッピング、簡単なアップグレード、コンテナ化です。バージョンのマッチング、正しいパス、ホットアンインストールおよびサードパーティモジュールのセキュリティ問題に不可能になっていることに注意してください。
Nginxは高性能HTTPサーバーであり、プロキシサーバーを逆にしており、そのモジュラー設計により非常に柔軟性があります。動的モジュールは、Nginx 1.9.11以降に導入される重要な機能であり、NGINX全体を再コンパイルせずに機能モジュールをロードまたは交換できます。

動的モジュールとは何ですか?
従来、NGINXモジュール(HTTP Rewrite、GZIP、LUAサポートなど)は、コンパイル時間のメインプログラムに静的にリンクされています。これは、新しいモジュールを追加する場合、nginxバイナリ全体を再コンパイルする必要があることを意味します。これは面倒でエラーが発生しやすいです。
動的モジュールを使用すると、特定のモジュールを.so
(共有オブジェクト)ファイルにコンパイルし、ApacheのDSO(動的共有オブジェクト)メカニズムと同様に、構成ファイルのload_module
ディレクティブを介して実行時にロードできます。

一般的な動的モジュールの例
動的荷重をサポートする一般的なモジュールを次に示します(nginxコンパイルオプションに応じて):
-
ngx_http_geoip_module
:GEOIPデータベースGEOLOCATIONルーティング -
ngx_http_image_filter_module
:画像スケーリング、トリミングなど。 -
ngx_stream_module
:レイヤー4ロードバランシング(TCP/UDP) -
nginx-module-vts
:仮想ホストトラフィック統計(サードパーティ) -
lua-nginx-module
:埋め込みluaスクリプト機能(OpenResty Coreモジュール)
✅ヒント:すべてのモジュールを動的にロードできるわけではありません!一部のコアモジュール(コア、イベント、HTTPコアなど)を静的にコンパイルする必要があります。
![]()
動的モジュールの使用方法は?
1.モジュールが動的負荷をサポートするかどうかを確認します
モジュールドキュメントまたはソースコードの--add-dynamic-module=PATH
のコンパイル方法の説明があるかどうかを確認してください。
たとえば、LUAモジュールのインストール:
./configure-add-dynamic-module =/path/to/lua-nginx-module && make install
コンパイル後、次のようなmodules/
ディレクトリで.so
ファイルが生成されます。
/usr/local/nginx/modules/ngx_http_lua_module.so
2。nginx.confにモジュールをロードします
構成ファイルの上部に追加します(サーバーまたはHTTPブロック内に留めることはできません):
load_moduleモジュール/ngx_http_lua_module.so;
次に、次のような後続の構成でこのモジュールの関数を使用できます。
場所 /こんにちは{ content_by_lua_block { ngx.say( "Hello from Lua!") } }
3.確認して再起動します
nginx -t#テスト構成構文nginx -s reload#reload configuration
動的モジュールの利点
- ?強力なホットプラグ機能:新しい機能はnginxボディを再コンパイルする必要はありません
- ?§操作と維持とアップグレードのeeasty:特定のモジュール(セキュリティパッチなど)を個別に更新できます
- ?責任のより明確な分離:モジュール開発者は
.so
パッケージを独立して公開できます - ?コンテナ化された展開に適しています:基本的なミラーロードモジュールオンデマンド、これは軽量です
注意すべきこと
- ⚠️.SOファイルが現在の
.so
メインバージョンと互換性があることを確認する必要があります(メインバージョン番号は同じです。両方が1.24.xの場合) - dule
load_module
グローバルスコープに配置する必要があります(つまり、どのブロック内でもありません) - Hotホットアンロードモジュールはサポートされていません(Nginx全体をリロードするために変更を有効にするだけです)
- hurty§サードパーティモジュールは、セキュリティと安定性を自分で維持する必要があります
基本的にそれだけです。動的モジュールは、CI/CDオートメーションの展開を行っている場合、またはNGINXコンピレーションの複雑さを削減したい場合、非常に実用的なオプションです。複雑ではありませんが、詳細、特にパスとバージョンの一致する問題を無視するのは簡単です。
以上がnginxの動的モジュールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

HSTSを有効にする方法は、HTTPS Webサイトで厳密な輸送セキュリティ応答ヘッダーを構成することです。特定の操作は次のとおりです。1。nginxは、サーバーブロックにadd_headerディレクティブを追加します。 2.Apacheは、構成ファイルまたは.htaccessにヘッダーディレクティブを追加します。 3.IISは、web.configにカスタムヘッダーを追加します。サイトがHTTPSを完全にサポートし、パラメーターには最大年齢(有効期間)、含まれるサブドメイン(サブドメインが有効)、プリロード(プリロードリスト)が含まれるようにする必要があります。

NGINXのSSL/TLSサービスを構成するには、証明書と秘密キーを準備し、サーバーブロックに関連するパラメーターを設定する必要があります。 1.証明書ファイルを準備:.crtまたは.pem形式と対応する.key秘密キーで証明書を取得します。 Let'sencryptまたはコマーシャル組織を使用してそれを発行し、中間証明書をバンドルファイルにマージできます。 2。サーバーブロックの構成:listen443ssl、ssl_certificateパスを/etc/ssl/example.com.crt、およびssl_certificate_keyパスAs /etc/ssl/example.com.kをサイト構成ファイルに定義します。

NGINX構成を変更した後、最初に構文をテストしてからサービスをリロードする必要があります。 1. nginx-Tを使用して、構成ファイルの構文を確認します。プロンプト「Syntaxisok」と「testissuccessful」がプロンプトされた場合、それは正しいことを意味します。エラーがある場合、特定の問題行が表示されます。 2.構成ファイルのアクセス許可が高い場合、sudonginx-tを使用して実行する必要があります。 3.テストが実際にロードされていることを確認してください。 Nginx-T-C/path/to/your/nginx.confを介してパスを指定するか、メインプロセスでPS-EF | grepnginxを介して使用される構成ファイルを表示できます。 4。テストに合格したら、sudonginx-sreloadオーバーロードサービスを実行して、新しい構成を有効にします

tosetupannginxserverblock、first -understanditstandtureusionstheServerdirectiontientivestingtingslikelisten、server_name、andlocation;

^〜モディファイアは、指定されたプレフィックスのURLの一致を優先し、その後の正規表現が一致しないようにするために、nginxで使用されます。要求されたURLがこのプレフィックスで始まると、Nginxはこのブロック構成をすぐに採用し、すべての正規式(場所〜または場所〜*)チェックをスキップしますが、=の完全な一致は必要ありません。 1.特定のパス処理が必要な状況(静的リソースなど)に適しており、通常のルールに上書きされないようにします。 2。パフォーマンスを改善し、特定のルールが最初に実行されるようにするためによく使用されます。 3.典型的なシナリオには、サービス画像、スクリプト、または内部APIルーティングが含まれます。他の修飾子と比較してください。4。通常のプレフィックスマッチは、通常を確認し続けます。 5.正確な一致は、フルパスにのみ適用されます。 6.通常の試合が入ります

インストールされているnginxバージョンをチェックする最も簡単な方法は、端末またはシェルでコマンドを実行することです。まず、Nginx-VまたはNginx-Vコマンドを使用して、基本バージョン番号または詳細情報を表示します。 「commandnotfound」がプロンプトされた場合、正しくインストールされないか、システムパスにない場合があります。第二に、Linux Systemsでは、SystemCtlstatusNginxを介してサービスステータスを確認してバージョン情報を取得できます。最後に、コマンドラインアクセス許可がない場合は、サーバー情報パネル、ホスティングプロバイダーのドキュメント、またはHTTP応答ヘッダー(サーバー:Nginx/1.22.1など)を介してバージョンを間接的に確認できますが、このメソッドはserver_tokenを有効にするかどうかによって制限されます。

toconfigureabackupserverinnginx、「バックアップ」パラメーターターベルリンテウップストリームブロックを追加し、1.DefineTheUpStraveStraveStraveStraveStraveStraveStrafiCを保証します

proxy_passはnginxで使用されてクライアント要求をバックエンドサーバーに転送します。そのコアロールは、nginxが逆プロキシとしてHTTPリクエストを処理できるようにすることです。 1.指定されたバックエンドサービス(ポート3000で実行されているnode.jsアプリケーションなど)にユーザーリクエストを受信して転送します。 2。NGINXは、バックエンドで返された応答を処理し、ユーザーに送り返します。同時に、プロセスにキャッシュ、圧縮、またはアクセス制御機能を追加できます。 3.設定するときは、パスマッチングとテールスラッシュの関係に注意して、マッチングパーツのパスを剥がすかどうかを判断します。 4.バックエンドが正しいコンテキスト情報を取得するようにするために、標準のプロキシヘッダーの設定(ホスト、X-Real-IPなど)と協力する必要があります。 5.一般的な問題にはパスが含まれません
