NGINX 1.9.11 以降、config
シェルファイルが書かれなければならない方法が変わりました。古い方法とまだ互換性がありますが、もしモジュールが動的モジュールを目的とする場合は新しい方法が使われなければなりません。
モジュールを静的あるいは動的モジュールとしてコンパイルする場合、新しいフォーマットが動作します。設定ファイルは古い方法と同じくBourneシェル形式です。
新しい形式の例は以下の通りです:
ngx_module_type=HTTP
ngx_module_name=ngx_http_my_module
ngx_module_srcs="$ngx_addon_dir/ngx_http_my_module.c"
. auto/module
ngx_addon_name=$ngx_module_name
You do not need to set empty variables for things that are not required as these will be cleared for each module by the build system.
注意
. auto/module
の行は新しいモジュールビルドシステムを引き起こすために必要です。
もしモジュールがNGINXの以前のバージョンと一緒に使われる場合は、古い方法と新しい方法の両方をサポートする設定ファイルを持つことが可能です。この例は静的モジュールから動的モジュールへの変換ガイドを見てください。
新しい設定システムを使って、モジュールは静的なコンピレーションのために--add-module=/path/to/module
を、動的なコンピレーションのために--add-dynamic-module=/path/to/module
を使って設定行を追加することができます。
ngx_module_type
¶ビルドするためのモジュールの型取り得るオプションは HTTP
, CORE
, HTTP_FILTER
, HTTP_INIT_FILTER
, HTTP_AUX_FILTER
, MAIL
, STREAM
あるいは MISC
です
ngx_module_name
¶モジュール名これは動的モジュールをコンパイルするためにビルドシステム内で使われます。ソースファイルの一つのセットの中で複数のモジュールのために空白で区切られた複数の値を置くことが可能で、リスト内の最初の名前は動的モジュールのための出力バイナリの名前として使われるでしょう。複雑な例を静的モジュールの動的モジュールへの変換で見てください。この中で使われている名前はmodule definition struct
と同じ名前でなければなりません。
ngx_module_incs
¶モジュールをビルドするために必要なインクルードパス。
ngx_module_deps
¶モジュールの一部であるビルドで必要とされる.h
ファイルのリスト
ngx_module_srcs
¶空白で区切られたソースファイルのリストがモジュールをコンパイルするために使われます。$ngx_addon_dir
変数がモジュールソースのパスのためのプレースフォルダーとして使うことができます。
ngx_module_libs
¶モジュールとリンクするライブラリのリスト。例えば、libpthread はngx_module_libs=-lpthread
を使ってリンクされるかも知れません。The following macros can be used to link against the same libraries as NGINX: LIBXSLT
, LIBGD
, GEOIP
, PCRE
, OPENSSL
, MD5
, SHA1
, ZLIB
and PERL
.
ngx_addon_name
¶configure
スクリプトのコンソール出力テキストの中でモジュールの名前を提供します
ngx_module_link
¶これはビルドシステムによって動的モジュールについてはDYNAMIC
、あるいは静的モジュールについては ADDON
に設定されます。頻繁には使われませんが、異なるコンパイルモードのために何か異なることを起こす必要がある場合には便利かも知れません。この変数の値は標準if
を使ってシェルスクリプトで使われるようにテストすることができます。
ngx_module_order
¶モジュールについてのロード順を設定し、HTTP_FILTER
および HTTP_AUX_FILTER
モジュールの種類について便利です。
順番は逆順で格納されます。ngx_http_copy_filter_module
はリストの一番下近くにあり、最初に実行されるものの一つです。これは他のフィルタのためにデータを読み込みます。リストの一番上近くには データを書き出すngx_http_write_filter_module
があり、そして最後に実行されるものの一つです。
このオプションのための形式は、前に挿入するための空白区切りのモジュールのリストが続く現在のモジュール名で、従って後で実行します。モジュールは現在ロードするために見つけられるリスト内の最後のモジュールの前に挿入されるでしょう。
By default for filter modules this is set to "$ngx_module_name ngx_http_copy_filter"
which will insert the module before the copy filter in the list and therefore will execute after the copy filter. デフォルトが空である他のモジュールの型について。