ソースからの 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 のサポートを提供するモジュールのビルドを有効にします。このモジュールはデフォルトではビルドされません。このモジュールをビルドして実行するには、BoringSSL、LibreSSL、または 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の
./configureとmakeで行われます。このライブラリは、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の
./configureとmakeによって行われます。このライブラリはngx_http_gzip_moduleモジュールで必要となります。 -
--with-zlib-opt=parameters - zlibの追加ビルドオプションを設定します。
-
--with-zlib-asm=cpu - 指定されたCPU(
pentium、pentiumpro)のいずれかに最適化された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を使用してコンパイルおよびインストールされます。