Сборка 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. Этот модуль не строится по умолчанию. Для построения и запуска этого модуля рекомендуется использовать библиотеку 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, который предоставляет доступ к базовой статусной информации. Этот модуль не строится по умолчанию.
-
--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