ソースからnginxを構築する

構築は configure コマンドを使って設定されます。configureはnginxが接続の処理時に使うことができるメソッドを含めたシステムのあらゆる特徴を定義します。最後にMakefileを作ります。

configure コマンドは次のパラメータをサポートしています:

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

--prefix=path
ファイルを提供するディレクトリを定義します。これと同じディレクトリがconfigure (ライブラリのソースファイルへのパスは除く) とnginx.conf 設定ファイルの中で全ての相対パスにも使われます。デフォルトでは/usr/local/nginx に設定されます。
--sbin-path=path
nginx実行ファイルの名前を設定します。この名前はインストールの間でのみ使われます。デフォルトではファイルはprefix/sbin/nginxという名前です。
--modules-path=path
nginx動的モジュールがインストールされるディレクトリを定義します。デフォルトでは、prefix/modules ディレクトリが使われます。
--conf-path=path
nginx.conf 設定ファイルの名前を設定します。必要があれば、nginxはコマンドラインのパラメータ -c fileで設定ファイルを指定して、異なる設定ファイルで常に開始するようにすることもできます。デフォルトでは、ファイルの名前はprefix/conf/nginx.confです。
--error-log-path=path
初期のerror, warning, および diagnosticファイルの名前を設定する。インストール後は、nginx.conf設定ファイルの中で error_logディレクティブを使っていつでも変更することができます。デフォルトでは prefix/logs/error.logという名前です。
--pid-path=path
メインプロセスのプロセスIDを格納するnginx.pidファイルの名前を設定する。インストール後は、nginx.conf設定ファイルの中で pidディレクティブを使っていつでも変更することができます。デフォルトでは prefix/logs/nginx.pidという名前です。
--lock-path=path
ロックファイルの名前のプリフィックスを設定します。インストレーションの後で、その値は lock_file ディレクティブを使って nginx.conf 設定ファイル内で常に変更することができます。デフォルトでは、値は prefix/logs/nginx.lockです。

--user=name
ワーカープロセスによって使われる特権の無いユーザの名前を設定します。インストレーションの後で、その名前はuserディレクティブを使って nginx.conf 設定ファイル内で常に変更することができます。デフォルトのユーザ名はnobodyです。
--group=name
ワーカープロセスによって使われる特権のないグループの名前を設定します。インストレーションの後で、その名前はuserディレクティブを使って nginx.conf 設定ファイル内で常に変更することができます。デフォルトでは、権限が無いユーザののグループ名が設定されます。

--build=name
任意のnginxビルド名を設定します。
--builddir=path
ビルドのディレクトリを設定します。

--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
HTTPSプロトコルのサポートをHTTPサーバに追加するモジュールのビルドを有効にします。このモジュールはデフォルトでは構築されません。このモジュールを構築して実行するにはOpenSSLライブラリが必要です。
--with-http_v2_module
HTTP/2のサポートを提供するモジュールの構築を有効にします。このモジュールはデフォルトでは構築されません。
--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の構築を有効にします。このモジュールはデフォルトでは構築されません。このモジュールを構築および実行するには、libxml2libxslt ライブラリが必要です。
--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
1つの指定された文字列を他のものに置き換えることで応答を修正する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
"gzip"符号化メソッドをサポートしないクライアントのために"Content-Encoding: gzip"の応答を解凍するngx_http_gunzip_module モジュールの構築を有効にします。このモジュールはデフォルトでは構築されません。
--with-http_gzip_static_module
通常のファイルの代わりに".gz"ファイル拡張子のあらかじめ圧縮されたファイルを送信することができる<c0>ngx_http_gzip_static_module</c0>モジュールの構築を有効にします。このモジュールはデフォルトでは構築されません。
--with-http_auth_request_module
サブリクエストの結果に基づいたクライアント認証を実装するngx_http_auth_request_moduleモジュールの構築を有効にします。このモジュールはデフォルトでは構築されません。
--with-http_random_index_module
スラッシュ文字('/')で終わるリクエストを処理し、ディレクトリ内のランダムなファイルをindexファイルとして提供するために取り上げるngx_http_random_index_module モジュールの構築を有効にします。このモジュールはデフォルトでは構築されません。
--with-http_secure_link_module
ngx_http_secure_link_module モジュールの構築を有効にします。このモジュールはデフォルトでは構築されません。
--with-http_degradation_module
<a0>ngx_http_degradation_module</a0> モジュールの構築を有効にします。このモジュールはデフォルトでは構築されません。
--with-http_slice_module
ある範囲の応答を返しながら、リクエストをサブリクエストに分割するngx_http_slice_module モジュールの構築を有効にします。モジュールは大きな応答のより効果的なキャッシングを提供します。このモジュールはデフォルトでは構築されません。
--with-http_stub_status_module
基本統計情報へのアクセスを提供する ngx_http_stub_status_module モジュールの構築を有効にします。このモジュールはデフォルトでは構築されません。

--without-http_charset_module
応答の"Content-Type"ヘッダフィールドに指定した文字セットを追加し、付加的に1つの文字セットから他のものへの変換をすることができる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 認証”プロトコルを使ってユーザ名とパスワードを検証してリソースへのアクセスを制限することができるngx_http_auth_basic_moduleモジュールの構築を無効にします。
--without-http_mirror_module
バックグランドのミラー サブリクエストを作成することで、元のリクエストのミラーリングを実装するngx_http_mirror_moduleモジュールの構築を無効にします。
--without-http_autoindex_module
スラッシュ文字('/')で終わるリクエストを処理し、ngx_http_index_moduleモジュールがindexファイルを見つけられない場合にディレクトリのリストを生成する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
A/Bテストのための変数を生成するngx_http_split_clients_moduleモジュールの構築を無効にします。
--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
キーごとの接続数、例えば1つのIPアドレスからの接続数を制限するngx_http_limit_conn_moduleモジュールの構築を無効にします。
--without-http_limit_req_module
キーごとのリクエストの処理レート、例えば1つのIPアドレスから来るリクエストの処理レートを制限するngx_http_limit_req_moduleモジュールの構築を無効にします。
--without-http_empty_gif_module
1ピクセルの透過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
upstreamサーバへの接続のキャッシュを提供するモジュールの構築を無効にします。
--without-http_upstream_zone_module
共有メモリゾーンのupstreamグループの実行時の状態を格納できるようにするモジュールの構築を無効にします。

--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サーバの初期リクエストログの名前を設定する。インストール後は、nginx.conf設定ファイルの中でaccess_logディレクティブを使っていつでも変更することができます。デフォルトでは、ファイルの名前は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 mail proxy サーバを有効にします。
--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
キーごとの接続数、例えば1つのIPアドレスからの接続数を制限するngx_stream_limit_conn_moduleモジュールの構築を無効にします。
--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
disables building the ngx_stream_set_module module that sets a value for a variable.
--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
共有メモリゾーンのupstreamグループの実行時の状態を格納できるようにするモジュールの構築を無効にします。

--with-google_perftools_module
Google Performance Toolsを使ってnginxのworkerプロセスのプロファイリングを有効にする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
linkの間に使われる追加のパラメータを設定します。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 コンパイル”サポート(1.1.12、pcre_jitディレクティブ)のPCREライブラリを構築します。
--without-pcre2
disables use of the PCRE2 library instead of the original PCRE library (1.21.5).

--with-zlib=path
zlibライブラリのソースへのパスを設定します。ライブラリの配布物(バージョン 1.1.3 - 1.2.11) をzlibサイトからダウンロードして解凍する必要があります。後は、nginxの./configuremakeで完了です。このライブラリはngx_http_gzip_moduleモジュールのために必要です。
--with-zlib-opt=parameters
zlibの追加の構築オプションを設定します。
--with-zlib-asm=cpu
指定されたCPUに最適化されたzlibアセンブラソースの使用を有効にします: pentium, pentiumpro

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

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

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

パラメータの使い方の例(これらは全て一行で記述される必要があります):

設定
    --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.2.11

設定の後で、nginxはmakeを使ってコンパイルされインストールされます。

TOP
inserted by FC2 system