configureのオプション

前頁で説明したnginxをソースファイルからインストールする手順において、 ./configureを実施しました。
nginxの./configureで指定できるオプションについて説明します。
英語が苦手で無い方は、解凍したnginx-1.12.0のディレクトリ配下で./configure --helpで確認して下さい。

多くのオプションがモジュール一覧に定義されたモジュールの有効・無効を決めるオプションです。

モジュール一覧を確認して、モジュールの機能を確認した上オプションを決めて下さい。

オプション 説明
--help ./configure で指定できるオプションを表示します。(英語)
--prefix=PATH nginxのインストール先のパス
例) --prefix=/usr/local/nginx
デフォルト値(未指定時):/usr/local/nginx
--sbin-path=PATH nginx本体のフルパス
例) --prefix=/usr/local/nginx/sbin/nginx
デフォルト値(未指定時): prefix/sbin/nginx
--modules-path=PATH 動的モジュール(Dynamic Modules)をインストールするパス
例) --prefix=/usr/local/nginx/modules
デフォルト値(未指定時): prefix/modules
--conf-path=PATH nginxの設定ファイル(nginx.confなど)を格納するパス
例) --prefix=/etc/nginx/conf
デフォルト値(未指定時): prefix/conf
--error-log-path=PATH nginxのエラーログのフルパス
例) --prefix=/var/log/nginx/error.log
デフォルト値(未指定時): prefix/logs/error.log
--pid-path=PATH nginx.pid(nginx実行時のプロセスIDファイル)のフルパス
例) --prefix=/var/run/nginx/nginx.pid
デフォルト値(未指定時): prefix/logs/nginx.pid
--user=USER workプロセスを実行するシステムアカウント
ngnix.confのmainコンテキストであるuserディレクティブで指定可能です。
例) --prefix=ngnix
デフォルト値(未指定時): nobody
--group=GROUP workプロセスを実行するグループ
ngnix.confのmainコンテキストであるuserディレクティブで指定可能です。
例) --prefix=ngnix
デフォルト値(未指定時): nobody
--build=NAME オプションのnginxビルド名を設定します。
--builddir=DIR ビルドディレクトリを指定します。
--with[--without]-select_module workプロセスのコネクションの接続方式をselectにします。
--withoutの場合には、コネクションの接続方式selectを無効にします。
コネクション接続方式は、特定の理由が無い限り、未指定にします。(筆者主観)
nginx.confのuseディレクティブのマニュアルにあるように、
nginxがOSに適した接続方式を選択します。
--with[--without]-poll_module workプロセスのコネクションの接続方式をpollにします。
--withoutの場合には、コネクションの接続方式pollを無効にします。
コネクション接続方式は、特定の理由が無い限り、未指定にします。(筆者主観)
nginx.confのuseディレクティブのマニュアルにあるように、
nginxがOSに適した接続方式を選択します。
--with-threads workプロセスのコネクションにスレッドプール方式を利用できるようになります。
nginx.confのaioディレクティブに関連します。
--with-file-aio ファイルAIOを有効にします。
nginx.confのaioディレクティブに関連します。
--with-http_ssl_module ngx_http_ssl_moduleを有効にします。
httpsを利用する場合には、--with-openssl=PATHと合わせて指定します。
--with-http_v2_module ngx_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 ngx_http_xslt_moduleを有効にします。
事前にlibxml2とlibxsltのライブラリをインストールする必要があります。
--with-http_xslt_module=dynamic 動的モジュールのngx_http_xslt_moduleを有効にします。
--with-http_image_filter_module ngx_http_image_filter_moduleを有効にします。
事前にGD(libgd-dev)ライブラリのインストールが必要です。
--with-http_geoip_module ngx_http_geoip_moduleを有効にします。
事前にGeoIP(libgeoip-dev)ライブラリのインストールが必要です。
--with-http_geoip_module=dynamic 動的モジュールのngx_http_geoip_moduleを有効にします。
--with-http_sub_module ngx_http_sub_moduleを有効にします。
--with-http_dav_module ngx_http_dav_moduleを有効にします。
--with-http_flv_module ngx_http_flv_moduleを有効にします。
--with-http_mp4_module ngx_http_mp4_moduleを有効にします。
--with-http_gunzip_module ngx_http_gunzip_moduleを有効にします。
--with-http_gzip_static_module 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 ngx_http_charset_moduleを無効にします。
--without-http_charset_module ngx_http_charset_moduleを無効にします。
--without-http_gzip_module ngx_http_gzip_moduleを無効にします。
--without-http_ssi_module 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 ngx_http_auth_basic_moduleを無効にします。
--without-http_autoindex_module ngx_http_autoindex_moduleを無効にします。
--without-http_geo_module ngx_http_geo_moduleを無効にします。
--without-http_map_module ngx_http_map_moduleを無効にします。
--without-http_split_clients_module ngx_http_split_clients_moduleを無効にします。
--without-http_referer_module ngx_http_referer_moduleを無効にします。
--without-http_rewrite_module ngx_http_rewrite_moduleを無効にします。
--without-http_proxy_module ngx_http_proxy_moduleを無効にします。
--without-http_fastcgi_module ngx_http_fastcgi_moduleを無効にします。
--without-http_uwsgi_module ngx_http_uwsgi_moduleを無効にします。
--without-http_scgi_module ngx_http_scgi_moduleを無効にします。
--without-http_memcached_module ngx_http_memcached_moduleを無効にします。
--without-http_limit_conn_module ngx_http_limit_conn_moduleを無効にします。
--without-http_limit_req_module ngx_http_limit_req_moduleを無効にします。
--without-http_empty_gif_module ngx_http_empty_gif_moduleを無効にします。
--without-http_empty_gif_module ngx_http_browser_moduleを無効にします。
--without-http_browser_module ngx_http_browser_moduleを無効にします。
--without-http_upstream_hash_module ngx_http_upstream_hash_moduleを無効にします。
--without-http_upstream_ip_hash_module ngx_http_upstream_ip_hash_moduleを無効にします。
--without-http_upstream_least_conn_module ngx_http_upstream_least_conn_moduleを無効にします。
--without-http_upstream_keepalive_module ngx_http_upstream_keepalive_moduleを無効にします。
--without-http_upstream_zone_module ngx_http_upstream_zone_moduleを無効にします。
--with-http_perl_module ngx_http_perl_moduleを有効にします。
--with-http_perl_module=dynamic 動的モジュールのngx_http_perl_moduleを有効にします。
--with-perl_modules_path=PATH Perlモジュールのパスを設定します。
--with-perl=PATH Perl本体(バイナリー)のフルパス
--http-log-path=PATH HTTPアクセスログをを設定します。
ngx_http_log_moduleのaccessディレクティブをnginx.confで指定することで実行できるため、
インストール時のオプションで明示する必要性は低いです。(筆者主観)
--http-client-body-temp-path=PATH Httpクライアントのリクエストボディの一時ファイルを格納するパスを設定します。
例)--http-client-body-temp-path=/var/lib/nginx/body
デフォルト値(未指定時):prefix/client_body_temp
--http-proxy-temp-path=PATH proxy機能で利用する一時ファイルを格納するパスを設定します。
例)--http-proxy-temp-path=/var/lib/nginx/proxy
デフォルト値(未指定時):prefix/proxy_temp
--http-fastcgi-temp-path=PATH fastcgi機能で利用する一時ファイルを格納するパスを設定します。
例)--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
デフォルト値(未指定時):prefix/fastcgi_temp
--http-uwsgi-temp-path=PATH uwsgi機能で利用する一時ファイルを格納するパスを設定します。
例)--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
デフォルト値(未指定時):prefix/uwsgi_temp
--http-scgi-temp-path=PATH scgi機能で利用する一時ファイルを格納するパスを設定します。
例)--http-scgi-temp-path=/var/lib/nginx/scgi
デフォルト値(未指定時):prefix/scgi_temp
--without-http Http Serverを無効にします。
--without-http-cache Http キャッシュを無効にします。
--with-mail メール機能(POP3/IMAP4/SMTP proxy module)を有効にします。
--with-mail=dynamic 動的モジュールのメール機能(POP3/IMAP4/SMTP proxy module)を有効にします。
--with-mail_ssl_module ngx_mail_ssl_moduleを有効にします。
--without-mail_pop3_module ngx_mail_pop3_moduleを無効にします。
--without-mail_imap_module ngx_mail_imap_moduleを無効にします。
--without-mail_smtp_module ngx_mail_smtp_moduleを無効にします。
--with-stream TCP/UDP proxy moduleを有効にします。
--with-stream=dynamic 動的モジュールTCP/UDP proxy moduleを有効にします。
--with-stream_ssl_module ngx_stream_ssl_moduleを有効にします。
--with-stream_realip_module ngx_stream_realip_moduleを有効にします。
--with-stream_geoip_module ngx_stream_geoip_moduleを有効にします。
--with-stream_geoip_module=dynamic 動的モジュールのngx_stream_geoip_moduleを有効にします。
--with-stream_ssl_preread_module ngx_stream_ssl_preread_moduleを有効にします。
--without-stream_limit_conn_module ngx_stream_limit_conn_moduleを無効にします。
--without-stream_access_module ngx_stream_access_moduleを無効にします。
--without-stream_geo_module ngx_stream_geo_moduleを無効にします。
--without-stream_map_module ngx_stream_map_moduleを無効にします。
--without-stream_split_clients_module ngx_stream_split_clients_moduleを無効にします。
--without-stream_return_module ngx_stream_return_moduleを無効にします。
--without-stream_upstream_hash_module ngx_stream_upstream_hash_moduleを無効にします。
--without-stream_upstream_least_conn_module ngx_stream_upstream_least_conn_moduleを無効にします。
--without-stream_upstream_zone_module ngx_stream_upstream_zone_moduleを無効にします。
--with-google_perftools_module ngx_google_perftools_moduleを有効にします。
--with-cpp_test_module ngx_cpp_test_moduleを有効にします。
--add-module=PATH 拡張モジュールのパスを指定し、パスに保存された拡張モジュールを有効にします。
nginx.confからload_moduleディレクティブで拡張モジュールを指定します。
--add-dynamic-module=PATH 動的モジュールのパスを指定します。パスに保存された動的モジュールを有効にします。
nginx.confからload_moduleディレクティブで動的モジュールを指定します。
--with-compat 動的モジュールの互換性。
コンパイルした動的モジュールファイルを同じ環境の別サーバに利用できます。
--with-cc=PATH Cコンパイラを指定します。
--with-cpp=PATH Cプロセッサーを指定します。
--with-cc-opt=OPTIONS Cコンパイラにオプションを指定します。
--with-ld-opt=OPTIONS リンカーのオプションを指定します。
---with-cpu-opt=CPU ビルド時のCPUを指定します。
CPUの選択肢:pentium, pentiumpro, pentium3, pentium4,athlon, opteron, sparc32, sparc64, ppc64
--with[--without]-pcre 正規表現用のPCREライブラリの利用を強制します。
without指定時には、利用を禁止します。
--with-pcre=DIR PCREライブラリのパスを指定します。
例)--with-pcre=/usr/local/src/pcre-8.40 PCREライブラリをソースからコンパイルする場合には、pcre-8.40ディレクトリ内で
./configure、make、make install を事前に実施する必要があります。
--with-pcre-opt=OPTIONS PCREライブラリビルド時のオプションを指定します。
--with-pcre-jit JIT(JustInTime)コンパイルでPCREをビルドします。
--with-zlib=DIR zlibライブラリのパスを指定します。
例)--with-pcre=/usr/local/src/zlib-1.2.11
--with-zlib-opt=OPTIONS zlibライブラリのビルド自のオプションを指定します。
--with-zlib-asm=CPU zlibライブラリのアセンブルソースを解析するCPUを指定します。
CPUの選択肢:pentium, pentiumpro
--with-libatomic libatomic_opsライブラリの使用を強制します。
--with-libatomic=DIR libatomic_opsを利用する場合、libatomic_opsライブラリのソースファイルの格納先を指定します。
--with-openssl=DIR opensslライブラリのソースファイル格納先を指定します。
例)--with-openssl=/usr/local/src/openssl-1.1.0f
--with-openssl-opt=OPTIONS opensslライブラリbuild時のオプションを指定します。
--with-debug デバックログを有効にします。

ディレクトリは何が正しいのか

上記表のオプションの例では、FHSに基づいたポリシーで各種ディレクトリのサンプル値を示しています。
パスのオプションを指定しないデフォルト値で各種ディレクトリが/usr/local/nginx配下にインストールされる方法でも問題ありません。

重要なのは、nginxサーバを管理するインフラチーム、運用チームがどちらのポリシーでサーバーのミドルウェアを管理しているかです。
あるべき論より、サーバの運用者のための運用ポリシーが統一され、整理整頓されているかが肝心な考え方です。