Spec-Zone.ru › nginx

Сборка 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 file. По умолчанию файл называется prefix/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. Этот модуль не строится по умолчанию. Для построения и запуска этого модуля рекомендуется использовать библиотеку SSL, поддерживающую HTTP/3, такую как BoringSSL, LibreSSL или QuicTLS. В противном случае, при использовании библиотеки OpenSSL, будет использоваться совместимый слой OpenSSL, который не поддерживает QUIC ранние данные.
--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, который предоставляет доступ к базовой статусной информации. Этот модуль не строится по умолчанию.
END_OF_DOCUMENT_MARKER
--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_random_module
отключает модуль, который реализует метод балансировки нагрузки random.
--without-http_upstream_keepalive_module
отключает модуль, который предоставляет кеширование подключений к серверам-прокси.
--without-http_upstream_zone_module
отключает модуль, который позволяет хранить состояние группы серверов-прокси в режиме реального времени в общей памяти зоне.
--with-http_perl_module
--with-http_perl_module=dynamic
включает компиляцию встроенного Perl-модуля embedded Perl module. По умолчанию этот модуль не компилируется.
--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 (поддержку 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_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
отключает компиляцию модуля, позволяющего хранить состояние группы upstream в зонах shared memory.
--with-google_perftools_module
позволяет создать модуль ngx_google_perftools_module, который позволяет профилировать процессы nginx worker с помощью 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
включает компиляцию для указанных CPU: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64.
--without-pcre
отключает использование библиотеки PCRE.
--with-pcre
принудительно включает использование библиотеки PCRE.
--with-pcre=path
устанавливает путь к исходным кодам библиотеки PCRE. Библиотеку необходимо скачать с сайта PCRE и распаковать. Остальное выполняется средствами nginx’s ./configure и make. Библиотека необходима для поддержки регулярных выражений в директиве location и для модуля ngx_http_rewrite_module.
--with-pcre-opt=parameters
устанавливает дополнительные параметры сборки для PCRE.
--with-pcre-jit
компилирует библиотеку PCRE с поддержкой «just-in-time compilation» (1.1.12, директива pcre_jit).
--without-pcre2
отключает использование библиотеки PCRE2 вместо исходной PCRE библиотеки (1.21.5).
--with-zlib=path
устанавливает путь к исходным кодам библиотеки zlib. Библиотеку необходимо скачать с сайта zlib и распаковать. Остальное выполняется средствами nginx’s ./configure и make. Библиотека необходима для модуля ngx_http_gzip_module.
--with-zlib-opt=parameters
устанавливает дополнительные параметры сборки для zlib.
--with-zlib-asm=cpu
включает использование источников ассемблера zlib, оптимизированных для одного из указанных CPU: 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-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/configure.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API