Сборка nginx из исходного кода
Настройка сборки выполняется с помощью команды 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 fileprefix/conf/nginx.conf. -
--error-log-path=path - задаёт имя основного файла ошибок, предупреждений и диагностических сообщений. После установки имя файла всегда можно изменить в файле конфигурации
nginx.confс помощью директивы error_log. По умолчанию файл называетсяprefix/logs/error.log. -
--pid-path=path - задаёт имя файла
nginx.pid, в котором будет храниться идентификатор процесса главного процесса. После установки имя файла всегда можно изменить в файле конфигурацииnginx.confс помощью директивы pid. По умолчанию файл называетсяprefix/logs/nginx.pid. -
--lock-path=path - задаёт префикс имён файлов блокировок. После установки это значение всегда можно изменить в файле конфигурации
nginx.confс помощью директивы lock_file. По умолчанию используется значениеprefix/logs/nginx.lock.
-
--user=name - задаёт имя непривилегированного пользователя, от имени которого будут работать рабочие процессы. После установки это имя всегда можно изменить в файле конфигурации
nginx.confс помощью директивы user. По умолчанию используется имя пользователя nobody. -
--group=name - задаёт имя группы, от имени которой будут работать рабочие процессы. После установки это имя всегда можно изменить в файле конфигурации
nginx.confс помощью директивы user. По умолчанию в качестве имени группы используется имя непривилегированного пользователя.
-
--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 - включает использование асинхронного ввода-вывода файлов (AIO) во FreeBSD и Linux.
-
--with-http_ssl_module - включает сборку модуля, добавляющего поддержку протокола HTTPS HTTP-серверу. Этот модуль по умолчанию не собирается. Для сборки и работы модуля требуется библиотека OpenSSL.
-
--with-http_v2_module - включает сборку модуля, обеспечивающего поддержку HTTP/2. Этот модуль по умолчанию не собирается.
-
--with-http_v3_module - включает сборку модуля, обеспечивающего поддержку HTTP/3. Этот модуль по умолчанию не собирается. Для сборки и работы модуля требуется библиотека OpenSSL с поддержкой HTTP/3.
-
--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 - включает сборку модуля ngx_http_xslt_module, который преобразует ответы XML с помощью одной или нескольких таблиц стилей XSLT. Этот модуль по умолчанию не собирается. Для сборки и работы модуля требуются библиотеки libxml2 и libxslt.
-
--with-http_image_filter_module
--with-http_image_filter_module=dynamic - включает сборку модуля ngx_http_image_filter_module, который преобразует изображения в форматах JPEG, GIF, PNG и WebP. Этот модуль по умолчанию не собирается.
-
--with-http_geoip_module
--with-http_geoip_module=dynamic - включает сборку модуля ngx_http_geoip_module, который создаёт переменные в зависимости от IP-адреса клиента и предварительно скомпилированных баз данных MaxMind. Этот модуль по умолчанию не собирается.
-
--with-http_sub_module - включает сборку модуля ngx_http_sub_module, который изменяет ответ, заменяя одну заданную строку другой. Этот модуль по умолчанию не собирается.
-
--with-http_dav_module - включает сборку модуля ngx_http_dav_module, обеспечивающего автоматизацию управления файлами по протоколу WebDAV. Этот модуль по умолчанию не собирается.
-
--with-http_flv_module - включает сборку модуля ngx_http_flv_module, обеспечивающего поддержку псевдопотоковой передачи файлов Flash Video (FLV) на стороне сервера. Этот модуль по умолчанию не собирается.
-
--with-http_mp4_module - включает сборку модуля ngx_http_mp4_module, обеспечивающего поддержку псевдопотоковой передачи файлов MP4 на стороне сервера. Этот модуль по умолчанию не собирается.
-
--with-http_gunzip_module - включает сборку модуля ngx_http_gunzip_module, который распаковывает ответы с заголовком «
Content-Encoding: gzip» для клиентов, не поддерживающих метод кодирования «gzip». Этот модуль по умолчанию не собирается. -
--with-http_gzip_static_module - включает сборку модуля ngx_http_gzip_static_module, который позволяет отправлять предварительно сжатые файлы с расширением «
.gz» вместо обычных файлов. Этот модуль по умолчанию не собирается. -
--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, который добавляет заданную кодировку в поле заголовка ответа «Content-Type» и может также преобразовывать данные из одной кодировки в другую.
-
--without-http_gzip_module - отключает сборку модуля, который сжимает ответы HTTP-сервера. Для сборки и работы этого модуля требуется библиотека zlib.
-
--without-http_ssi_module - отключает сборку модуля ngx_http_ssi_module, который обрабатывает команды SSI (Server Side Includes) в проходящих через него ответах.
-
--without-http_userid_module - отключает сборку модуля ngx_http_userid_module, который устанавливает файлы cookie для идентификации клиентов.
-
--without-http_access_module - отключает сборку модуля ngx_http_access_module, позволяющего ограничивать доступ для определённых адресов клиентов.
-
--without-http_auth_basic_module - отключает сборку модуля ngx_http_auth_basic_module, позволяющего ограничивать доступ к ресурсам путём проверки имени пользователя и пароля с использованием протокола «HTTP Basic Authentication».
-
--without-http_mirror_module - отключает сборку модуля ngx_http_mirror_module, который зеркалирует исходный запрос, создавая фоновые подзапросы-зеркала.
-
--without-http_autoindex_module - отключает сборку модуля ngx_http_autoindex_module, который обрабатывает запросы, заканчивающиеся символом косой черты («
/»), и формирует список файлов каталога, если модуль ngx_http_index_module не может найти индексный файл. -
--without-http_geo_module - отключает сборку модуля ngx_http_geo_module, который создаёт переменные со значениями, зависящими от IP-адреса клиента.
-
--without-http_map_module - отключает сборку модуля ngx_http_map_module, который создаёт переменные со значениями, зависящими от значений других переменных.
-
--without-http_split_clients_module - отключает сборку модуля ngx_http_split_clients_module, который создаёт переменные для A/B-тестирования.
-
--without-http_referer_module - отключает сборку модуля ngx_http_referer_module, который может блокировать доступ к сайту для запросов с недопустимыми значениями в поле заголовка «Referer».
-
--without-http_rewrite_module - отключает сборку модуля, позволяющего HTTP-серверу перенаправлять запросы и изменять URI запросов. Для сборки и работы этого модуля требуется библиотека PCRE.
-
--without-http_proxy_module - отключает сборку модуля проксирования HTTP-сервера.
-
--without-http_fastcgi_module - отключает сборку модуля ngx_http_fastcgi_module, который передаёт запросы серверу FastCGI.
-
--without-http_uwsgi_module - отключает сборку модуля ngx_http_uwsgi_module, который передаёт запросы серверу uwsgi.
-
--without-http_scgi_module - отключает сборку модуля ngx_http_scgi_module, который передаёт запросы серверу SCGI.
-
--without-http_grpc_module - отключает сборку модуля ngx_http_grpc_module, который передаёт запросы серверу gRPC.
-
--without-http_memcached_module - отключает сборку модуля ngx_http_memcached_module, который получает ответы от сервера memcached.
-
--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 - отключает сборку модуля ngx_http_browser_module, который создаёт переменные, значения которых зависят от значения поля заголовка запроса «User-Agent».
-
--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_least_time_module - отключает сборку модуля, реализующего метод балансировки нагрузки least_time.
-
--without-http_upstream_random_module - отключает сборку модуля, реализующего метод балансировки нагрузки random.
-
--without-http_upstream_keepalive_module - отключает сборку модуля, обеспечивающего кэширование соединений с upstream-серверами.
-
--without-http_upstream_zone_module - отключает сборку модуля, позволяющего хранить состояние группы upstream во время выполнения в общей области разделяемой памяти zone.
-
--without-http_upstream_sticky_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 - задаёт каталог для хранения временных файлов с телами запросов клиентов. После установки каталог всегда можно изменить в файле конфигурации
nginx.confс помощью директивы client_body_temp_path. По умолчанию каталог называетсяprefix/client_body_temp. -
--http-proxy-temp-path=path - задаёт каталог для хранения временных файлов с данными, полученными от проксируемых серверов. После установки каталог всегда можно изменить в файле конфигурации
nginx.confс помощью директивы proxy_temp_path. По умолчанию каталог называетсяprefix/proxy_temp. -
--http-fastcgi-temp-path=path - задаёт каталог для хранения временных файлов с данными, полученными от серверов FastCGI. После установки каталог всегда можно изменить в файле конфигурации
nginx.confс помощью директивы fastcgi_temp_path. По умолчанию каталог называетсяprefix/fastcgi_temp. -
--http-uwsgi-temp-path=path - задаёт каталог для хранения временных файлов с данными, полученными от серверов uwsgi. После установки каталог всегда можно изменить в файле конфигурации
nginx.confс помощью директивы uwsgi_temp_path. По умолчанию каталог называетсяprefix/uwsgi_temp. -
--http-scgi-temp-path=path - задаёт каталог для хранения временных файлов с данными, полученными от серверов SCGI. После установки каталог всегда можно изменить в файле конфигурации
nginx.confс помощью директивы scgi_temp_path. По умолчанию каталог называется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 - включает сборку модуля stream для универсального проксирования TCP/UDP и балансировки нагрузки. Этот модуль по умолчанию не собирается.
-
--with-stream_ssl_module - включает сборку модуля, добавляющего поддержку протоколов SSL/TLS модулю stream. Этот модуль по умолчанию не собирается. Для сборки и работы модуля требуется библиотека OpenSSL.
-
--with-stream_realip_module - включает сборку модуля ngx_stream_realip_module, который заменяет адрес клиента адресом, переданным в заголовке протокола PROXY. Этот модуль по умолчанию не собирается.
-
--with-stream_geoip_module
--with-stream_geoip_module=dynamic - включает сборку модуля ngx_stream_geoip_module, который создаёт переменные в зависимости от IP-адреса клиента и предварительно скомпилированных баз данных MaxMind. Этот модуль по умолчанию не собирается.
-
--with-stream_ssl_preread_module - включает сборку модуля ngx_stream_ssl_preread_module, позволяющего извлекать информацию из сообщения ClientHello без завершения SSL/TLS-соединения. Этот модуль по умолчанию не собирается.
-
--without-stream_limit_conn_module - отключает сборку модуля ngx_stream_limit_conn_module, который ограничивает число соединений для каждого ключа, например число соединений с одного IP-адреса.
-
--without-stream_access_module - отключает сборку модуля ngx_stream_access_module, позволяющего ограничивать доступ для определённых адресов клиентов.
-
--without-stream_geo_module - отключает сборку модуля ngx_stream_geo_module, который создаёт переменные со значениями, зависящими от IP-адреса клиента.
-
--without-stream_map_module - отключает сборку модуля ngx_stream_map_module, который создаёт переменные со значениями, зависящими от значений других переменных.
-
--without-stream_split_clients_module - отключает сборку модуля ngx_stream_split_clients_module, который создаёт переменные для A/B-тестирования.
-
--without-stream_return_module - отключает сборку модуля ngx_stream_return_module, который отправляет клиенту заданное значение, а затем закрывает соединение.
-
--without-stream_pass_module - отключает сборку модуля ngx_stream_pass_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_least_time_module - отключает сборку модуля, реализующего метод балансировки нагрузки least_time.
-
--without-stream_upstream_random_module - отключает сборку модуля, реализующего метод балансировки нагрузки random.
-
--without-stream_upstream_zone_module - отключает сборку модуля, позволяющего хранить состояние группы upstream во время выполнения в общей области разделяемой памяти zone.
-
--with-google_perftools_module - включает сборку модуля ngx_google_perftools_module, позволяющего профилировать рабочие процессы nginx с помощью Google Performance Tools. Модуль предназначен для разработчиков 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. При использовании системной библиотеки PCRE во FreeBSD следует указать
--with-cc-opt="-I /usr/local/include". Здесь также можно указать параметры для увеличения числа файлов, поддерживаемыхselect(), например:--with-cc-opt="-D FD_SETSIZE=2048". -
--with-ld-opt=parameters - задаёт дополнительные параметры, которые будут использоваться при компоновке. При использовании системной библиотеки PCRE во FreeBSD следует указать
--with-ld-opt="-L /usr/local/lib". -
--with-cpu-opt=cpu - включает сборку с оптимизацией для указанного процессора:
pentium,pentiumpro,pentium3,pentium4,athlon,opteron,sparc32,sparc64,ppc64.
-
--without-pcre - отключает использование библиотеки PCRE.
-
--with-pcre - принудительно включает использование библиотеки PCRE.
-
--with-pcre=path - задаёт путь к исходному коду библиотеки PCRE. Дистрибутив библиотеки необходимо загрузить с сайта PCRE и распаковать. Остальное сделают
./configureиmakenginx. Библиотека необходима для поддержки регулярных выражений в директиве location и для модуля ngx_http_rewrite_module. -
--with-pcre-opt=parameters - задаёт дополнительные параметры сборки PCRE.
-
--with-pcre-jit - собирает библиотеку PCRE с поддержкой «компиляции точно в срок» (1.1.12, директива pcre_jit).
-
--without-pcre2 - отключает использование библиотеки PCRE2 вместо исходной библиотеки PCRE (1.21.5).
-
--with-zlib=path - задаёт путь к исходному коду библиотеки zlib. Дистрибутив библиотеки необходимо загрузить с сайта zlib и распаковать. Остальное сделают
./configureиmakenginx. Библиотека необходима для модуля ngx_http_gzip_module. -
--with-zlib-opt=parameters - задаёт дополнительные параметры сборки zlib.
-
--with-zlib-asm=cpu - включает использование ассемблерного исходного кода zlib, оптимизированного для одного из указанных процессоров:
pentium,pentiumpro.
-
--with-libatomic - принудительно включает использование библиотеки libatomic_ops.
-
--with-libatomic=path - задаёт путь к исходному коду библиотеки libatomic_ops.
-
--with-openssl=path - задаёт путь к исходному коду библиотеки OpenSSL.
-
--with-openssl-opt=parameters - задаёт дополнительные параметры сборки OpenSSL.
-
--with-debug - включает журнал отладки.
Пример использования параметров (всё это необходимо ввести в одну строку):
./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.
© 2002-2021 Igor Sysoev
© 2011-2026 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/configure.html