ソースからの nginx のビルド

ビルドは configure コマンドを使って構成されます。このコマンドは、nginx が接続処理に使用できるメソッドなど、システムのさまざまな側面を定義します。最後に、Makefile が作成されます。

configure コマンドは、以下のパラメータをサポートします。

--help
ヘルプメッセージを表示します。

--prefix=パス
サーバーファイルを保持するディレクトリを定義します。このディレクトリは、configure で設定されたすべての相対パス(ライブラリのソースへのパスを除く)と nginx.conf 設定ファイルでも使用されます。デフォルトでは、/usr/local/nginx ディレクトリに設定されています。
--sbin-path=パス
nginx の実行可能ファイルの名前を設定します。この名前はインストール時のみ使用されます。デフォルトでは、ファイル名は prefix/sbin/nginx です。
--modules-path=パス
nginx のダイナミックモジュールがインストールされるディレクトリを定義します。デフォルトでは、prefix/modules ディレクトリが使用されます。
--conf-path=パス
nginx.conf 設定ファイルの名前を設定します。必要であれば、コマンドラインパラメータで指定することにより、異なる設定ファイルで nginx を起動することができます。-c ファイル。デフォルトでは、ファイル名は prefix/conf/nginx.conf です。
--error-log-path=パス
プライマリのエラー、警告、診断ファイルの名前を設定します。インストール後、ファイル名は nginx.conf 設定ファイルの error_log ディレクティブを使用していつでも変更できます。デフォルトでは、ファイル名は prefix/logs/error.log です。
--pid-path=パス
メインプロセスのプロセス ID を格納する nginx.pid ファイルの名前を設定します。インストール後、ファイル名は nginx.conf 設定ファイルの pid ディレクティブを使用していつでも変更できます。デフォルトでは、ファイル名は prefix/logs/nginx.pid です。
--lock-path=パス
ロックファイルの名前のプレフィックスを設定します。インストール後、この値は nginx.conf 設定ファイルの lock_file ディレクティブを使用していつでも変更できます。デフォルトでは、値は prefix/logs/nginx.lock です。

--user=名前
ワーカープロセスが使用する非特権ユーザーの名前を設定します。インストール後、この名前は nginx.conf 設定ファイルの user ディレクティブを使用していつでも変更できます。デフォルトのユーザー名は nobody です。
--group=名前
ワーカープロセスが使用するグループの名前を設定します。インストール後、この名前は nginx.conf 設定ファイルの user ディレクティブを使用していつでも変更できます。デフォルトでは、グループ名は非特権ユーザーの名前に設定されます。

--build=名前
オプションの nginx ビルド名を設定します。
--builddir=パス
ビルドディレクトリを設定します。

--with-select_module
--without-select_module
サーバーが select() メソッドで動作できるようにするモジュールのビルドを有効または無効にします。このモジュールは、プラットフォームが kqueue、epoll、/dev/poll などのより適切なメソッドをサポートしていない場合に自動的にビルドされます。
--with-poll_module
--without-poll_module
サーバーが poll() メソッドで動作できるようにするモジュールのビルドを有効または無効にします。このモジュールは、プラットフォームが kqueue、epoll、/dev/poll などのより適切なメソッドをサポートしていない場合に自動的にビルドされます。
--with-threads
スレッドプールの使用を有効にします。
--with-file-aio
FreeBSD および Linux での 非同期ファイル I/O(AIO)の使用を有効にします。

--with-http_ssl_module
HTTPサーバーに HTTPS プロトコルサポートを追加するモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。このモジュールをビルドして実行するには、OpenSSL ライブラリが必要です。
--with-http_v2_module
HTTP/2 のサポートを提供するモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_v3_module
HTTP/3 のサポートを提供するモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。このモジュールをビルドして実行するには、BoringSSLLibreSSL、または QuicTLS などの HTTP/3 サポートを提供する SSL ライブラリの使用が推奨されます。それ以外の場合、OpenSSL ライブラリを使用する場合、QUIC early data をサポートしない OpenSSL 互換レイヤーが使用されます。
--with-http_realip_module
クライアントアドレスを指定されたヘッダーフィールドで送信されたアドレスに変更する ngx_http_realip_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_addition_module
レスポンスの前後にテキストを追加する ngx_http_addition_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_xslt_module
--with-http_xslt_module=dynamic
1 つ以上の XSLT スタイルシートを使用して XML レスポンスを変換する ngx_http_xslt_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。このモジュールをビルドして実行するには、libxml2 および libxslt ライブラリが必要です。
--with-http_image_filter_module
--with-http_image_filter_module=dynamic
JPEG、GIF、PNG、および WebP 形式の画像を変換する ngx_http_image_filter_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_geoip_module
--with-http_geoip_module=dynamic
クライアント IP アドレスと事前コンパイルされた MaxMind データベースに応じて変数を作成する ngx_http_geoip_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_sub_module
指定された文字列を別の文字列に置き換えてレスポンスを変更する ngx_http_sub_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_dav_module
WebDAV プロトコルを介したファイル管理の自動化を提供する ngx_http_dav_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_flv_module
Flash Video (FLV) ファイルの疑似ストリーミングサーバー側サポートを提供する ngx_http_flv_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_mp4_module
MP4 ファイルの疑似ストリーミングサーバー側サポートを提供する ngx_http_mp4_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_gunzip_module
Content-Encoding: gzip」を含むレスポンスを、「gzip」エンコーディングメソッドをサポートしないクライアント向けに解凍する ngx_http_gunzip_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_gzip_static_module
通常のファイルではなく、「.gz」ファイル名拡張子を持つ事前圧縮されたファイルを送信できるようにする ngx_http_gzip_static_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_auth_request_module
サブリクエストの結果に基づいてクライアント認証を実装する ngx_http_auth_request_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_random_index_module
スラッシュ文字(「/」)で終わるリクエストを処理し、ディレクトリ内のランダムなファイルをインデックスファイルとして提供する ngx_http_random_index_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_secure_link_module
ngx_http_secure_link_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_degradation_module
ngx_http_degradation_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-http_slice_module
リクエストをサブリクエストに分割し、それぞれが特定の範囲のレスポンスを返す ngx_http_slice_module モジュールのビルドを有効にします。このモジュールは、大きなレスポンスの効果的なキャッシュを提供します。このモジュールはデフォルトではビルドされません。
--with-http_stub_status_module
基本的なステータス情報へのアクセスを提供する ngx_http_stub_status_module モジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。

--without-http_charset_module
指定された文字セットを「Content-Type」レスポンスヘッダーフィールドに追加し、さらにある文字セットから別の文字セットにデータを変換できる ngx_http_charset_module モジュールのビルドを無効にします。
--without-http_gzip_module
HTTP サーバーの レスポンスを圧縮するモジュールのビルドを無効にします。このモジュールをビルドして実行するには、zlib ライブラリが必要です。
--without-http_ssi_module
レスポンス内で SSI (Server Side Includes) コマンドを処理する ngx_http_ssi_module モジュールのビルドを無効にします。
--without-http_userid_module
クライアント識別に適したクッキーを設定する ngx_http_userid_module モジュールのビルドを無効にします。
--without-http_access_module
特定のクライアントアドレスへのアクセスを制限できる ngx_http_access_module モジュールのビルドを無効にします。
--without-http_auth_basic_module
「HTTP Basic Authentication」プロトコルを使用してユーザー名とパスワードを検証することにより、リソースへのアクセスを制限できる ngx_http_auth_basic_module モジュールのビルドを無効にします。
--without-http_mirror_module
バックグラウンドのミラーサブリクエストを作成することにより、元のリクエストのミラーリングを実装する ngx_http_mirror_module モジュールのビルドを無効にします。
--without-http_autoindex_module
スラッシュ文字(「/」)で終わるリクエストを処理し、ngx_http_index_module モジュールがインデックスファイルを見つけられない場合にディレクトリリストを生成する ngx_http_autoindex_module モジュールのビルドを無効にします。
--without-http_geo_module
クライアント IP アドレスに応じて値を持つ変数を作成する ngx_http_geo_module モジュールのビルドを無効にします。
--without-http_map_module
他の変数の値に応じて値を持つ変数を作成する ngx_http_map_module モジュールのビルドを無効にします。
--without-http_split_clients_module
ngx_http_split_clients_moduleモジュール(A/Bテスト用の変数を作成する)のビルドを無効にします。
--without-http_referer_module
“Referer”ヘッダーフィールドに無効な値を持つリクエストに対してサイトへのアクセスをブロックできるngx_http_referer_moduleモジュールのビルドを無効にします。
--without-http_rewrite_module
HTTPサーバーがリクエストをリダイレクトし、リクエストのURIを変更することを可能にするモジュールのビルドを無効にします。このモジュールをビルドおよび実行するには、PCREライブラリが必要です。
--without-http_proxy_module
HTTPサーバーのプロキシモジュールのビルドを無効にします。
--without-http_fastcgi_module
FastCGIサーバーにリクエストを渡すngx_http_fastcgi_moduleモジュールのビルドを無効にします。
--without-http_uwsgi_module
uwsgiサーバーにリクエストを渡すngx_http_uwsgi_moduleモジュールのビルドを無効にします。
--without-http_scgi_module
SCGIサーバーにリクエストを渡すngx_http_scgi_moduleモジュールのビルドを無効にします。
--without-http_grpc_module
gRPCサーバーにリクエストを渡すngx_http_grpc_moduleモジュールのビルドを無効にします。
--without-http_memcached_module
memcachedサーバーからレスポンスを取得するngx_http_memcached_moduleモジュールのビルドを無効にします。
--without-http_limit_conn_module
キーごとの接続数を制限するngx_http_limit_conn_moduleモジュール(例えば、単一のIPアドレスからの接続数)のビルドを無効にします。
--without-http_limit_req_module
キーごとのリクエスト処理レートを制限するngx_http_limit_req_moduleモジュール(例えば、単一のIPアドレスから来るリクエストの処理レート)のビルドを無効にします。
--without-http_empty_gif_module
単一ピクセルの透明GIFを出力するモジュールのビルドを無効にします。
--without-http_browser_module
“User-Agent”リクエストヘッダーフィールドの値に応じて値が変化する変数を作成するngx_http_browser_moduleモジュールのビルドを無効にします。
--without-http_upstream_hash_module
hash負荷分散メソッドを実装するモジュールのビルドを無効にします。
--without-http_upstream_ip_hash_module
ip_hash負荷分散メソッドを実装するモジュールのビルドを無効にします。
--without-http_upstream_least_conn_module
least_conn負荷分散メソッドを実装するモジュールのビルドを無効にします。
--without-http_upstream_random_module
random負荷分散メソッドを実装するモジュールのビルドを無効にします。
--without-http_upstream_keepalive_module
アップストリームサーバーへの接続のキャッシュを提供するモジュールのビルドを無効にします。
--without-http_upstream_zone_module
共有メモリゾーンにアップストリームグループの実行時状態を格納できるようにするモジュールのビルドを無効にします。

--with-http_perl_module
--with-http_perl_module=dynamic
埋め込みPerlモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-perl_modules_path=path
Perlモジュールを保持するディレクトリを定義します。
--with-perl=path
Perlバイナリの名前を設定します。

--http-log-path=path
HTTPサーバーのプライマリリクエストログファイルの名前を設定します。インストール後、access_logディレクティブを使用して、nginx.conf設定ファイルでファイル名をいつでも変更できます。デフォルトでは、ファイル名はprefix/logs/access.logです。
--http-client-body-temp-path=path
クライアントリクエストボディを保持する一時ファイルを保存するディレクトリを定義します。インストール後、client_body_temp_pathディレクティブを使用して、nginx.conf設定ファイルでディレクトリをいつでも変更できます。デフォルトでは、ディレクトリの名前はprefix/client_body_tempです。
--http-proxy-temp-path=path
プロキシされたサーバーから受信したデータを持つ一時ファイルを保存するディレクトリを定義します。インストール後、proxy_temp_pathディレクティブを使用して、nginx.conf設定ファイルでディレクトリをいつでも変更できます。デフォルトでは、ディレクトリの名前はprefix/proxy_tempです。
--http-fastcgi-temp-path=path
FastCGIサーバーから受信したデータを持つ一時ファイルを保存するディレクトリを定義します。インストール後、fastcgi_temp_pathディレクティブを使用して、nginx.conf設定ファイルでディレクトリをいつでも変更できます。デフォルトでは、ディレクトリの名前はprefix/fastcgi_tempです。
--http-uwsgi-temp-path=path
uwsgiサーバーから受信したデータを持つ一時ファイルを保存するディレクトリを定義します。インストール後、uwsgi_temp_pathディレクティブを使用して、nginx.conf設定ファイルでディレクトリをいつでも変更できます。デフォルトでは、ディレクトリの名前はprefix/uwsgi_tempです。
--http-scgi-temp-path=path
SCGIサーバーから受信したデータを持つ一時ファイルを保存するディレクトリを定義します。インストール後、scgi_temp_pathディレクティブを使用して、nginx.conf設定ファイルでディレクトリをいつでも変更できます。デフォルトでは、ディレクトリの名前はprefix/scgi_tempです。

--without-http
HTTPサーバーを無効にします。
--without-http-cache
HTTPキャッシュを無効にします。

--with-mail
--with-mail=dynamic
POP3/IMAP4/SMTP メールプロキシサーバーを有効にします。
--with-mail_ssl_module
メールプロキシサーバーにSSL/TLSプロトコルサポートを追加するモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。このモジュールをビルドおよび実行するには、OpenSSLライブラリが必要です。
--without-mail_pop3_module
メールプロキシサーバーでPOP3プロトコルを無効にします。
--without-mail_imap_module
メールプロキシサーバーでIMAPプロトコルを無効にします。
--without-mail_smtp_module
メールプロキシサーバーでSMTPプロトコルを無効にします。

--with-stream
--with-stream=dynamic
汎用的なTCP/UDPプロキシと負荷分散のためのストリームモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-stream_ssl_module
ストリームモジュールにSSL/TLSプロトコルサポートを追加するモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。このモジュールをビルドおよび実行するには、OpenSSLライブラリが必要です。
--with-stream_realip_module
クライアントアドレスをPROXYプロトコルヘッダーで送信されたアドレスに変更するngx_stream_realip_moduleモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-stream_geoip_module
--with-stream_geoip_module=dynamic
クライアントIPアドレスとコンパイル済みのMaxMindデータベースに応じて変数を作成するngx_stream_geoip_moduleモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--with-stream_ssl_preread_module
SSL/TLSを終端することなく、ClientHelloメッセージから情報を抽出できるようにするngx_stream_ssl_preread_moduleモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。
--without-stream_limit_conn_module
キーごとの接続数を制限するngx_stream_limit_conn_moduleモジュール(例えば、単一のIPアドレスからの接続数)のビルドを無効にします。
--without-stream_access_module
特定のクライアントアドレスへのアクセスを制限できるようにするngx_stream_access_moduleモジュールのビルドを無効にします。
--without-stream_geo_module
クライアントIPアドレスに応じて値が変化する変数を作成するngx_stream_geo_moduleモジュールのビルドを無効にします。
--without-stream_map_module
他の変数の値に応じて値が変化する変数を作成するngx_stream_map_moduleモジュールのビルドを無効にします。
--without-stream_split_clients_module
A/Bテスト用の変数を作成するngx_stream_split_clients_moduleモジュールのビルドを無効にします。
--without-stream_return_module
指定された値をクライアントに送信してから接続を閉じるngx_stream_return_moduleモジュールのビルドを無効にします。
--without-stream_set_module
変数の値を設定するngx_stream_set_moduleモジュールのビルドを無効にします。
--without-stream_upstream_hash_module
hash負荷分散メソッドを実装するモジュールのビルドを無効にします。
--without-stream_upstream_least_conn_module
least_conn負荷分散メソッドを実装するモジュールのビルドを無効にします。
--without-stream_upstream_random_module
random負荷分散メソッドを実装するモジュールのビルドを無効にします。
--without-stream_upstream_zone_module
共有メモリゾーンにアップストリームグループの実行時状態を格納できるようにするモジュールのビルドを無効にします。

--with-google_perftools_module
Google Performance Toolsを使用してnginxワーカプロセスのプロファイリングを有効にするngx_google_perftools_moduleモジュールのビルドを有効にします。このモジュールはnginx開発者向けであり、デフォルトではビルドされません。
--with-cpp_test_module
ngx_cpp_test_moduleモジュールのビルドを有効にします。

--add-module=path
外部モジュールを有効にします。
--add-dynamic-module=path
外部動的モジュールを有効にします。

--with-compat
動的モジュールの互換性を有効にします。

--with-cc=path
Cコンパイラーの名前を設定します。
--with-cpp=path
Cプリプロセッサーの名前を設定します。
--with-cc-opt=parameters
CFLAGS変数に追加される追加パラメーターを設定します。FreeBSDでシステムPCREライブラリを使用する場合、--with-cc-opt="-I /usr/local/include"を指定する必要があります。select()でサポートされるファイルの数を増やす必要がある場合は、--with-cc-opt="-D FD_SETSIZE=2048"のようにここで指定することもできます。
--with-ld-opt=parameters
リンク中に使用される追加パラメーターを設定します。FreeBSDでシステムPCREライブラリを使用する場合、--with-ld-opt="-L /usr/local/lib"を指定する必要があります。
--with-cpu-opt=cpu
指定されたCPU(pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64)ごとのビルドを有効にします。

--without-pcre
PCREライブラリの使用を無効にします。
--with-pcre
PCREライブラリの使用を強制します。
--with-pcre=path
PCREライブラリのソースへのパスを設定します。ライブラリの配布物をPCREサイトからダウンロードして展開する必要があります。残りはnginxの./configuremakeで行われます。このライブラリは、locationディレクティブおよびngx_http_rewrite_moduleモジュールでの正規表現サポートに必要です。
--with-pcre-opt=parameters
PCREの追加ビルドオプションを設定します。
--with-pcre-jit
“just-in-time compilation”サポート(1.1.12、pcre_jitディレクティブ)でPCREライブラリをビルドします。
--without-pcre2
オリジナルのPCREライブラリの代わりにPCRE2ライブラリを使用することを無効にします(1.21.5)。

--with-zlib=path
zlibライブラリのソースへのパスを設定します。ライブラリの配布物はzlibサイトからダウンロードして展開する必要があります。残りの作業はnginxの./configuremakeによって行われます。このライブラリはngx_http_gzip_moduleモジュールで必要となります。
--with-zlib-opt=parameters
zlibの追加ビルドオプションを設定します。
--with-zlib-asm=cpu
指定されたCPU(pentiumpentiumpro)のいずれかに最適化されたzlibアセンブラソースの使用を有効にします。

--with-libatomic
libatomic_opsライブラリの使用を強制します。
--with-libatomic=path
libatomic_opsライブラリのソースへのパスを設定します。

--with-openssl=path
OpenSSLライブラリのソースへのパスを設定します。
--with-openssl-opt=parameters
OpenSSLの追加ビルドオプションを設定します。

--with-debug
デバッグログを有効にします。

パラメータの使用例(これらはすべて1行で入力する必要があります)

./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre2-10.39
    --with-zlib=../zlib-1.3

設定後、nginxはmakeを使用してコンパイルおよびインストールされます。