Как я могу увидеть, с каких флагов был скомпилирован Nginx?

Как проверить, какие модули были добавлены в установку nginx?

205 голосов | спросил Nisanio 17 Jpm1000000pmMon, 17 Jan 2011 23:42:08 +030011 2011, 23:42:08

3 ответа


263

nginx -V отобразит все настроенные модули. Нет явной команды enable /load.

ответил Joris 18 Jam1000000amTue, 18 Jan 2011 00:35:57 +030011 2011, 00:35:57
56

Дифференциальный однострочный:

2>&1 nginx -V | tr -- - '\n' | grep _module

Удобно для сравнения двух сред:

lsmodn="2>&1 nginx -V | tr -- - '\n' | grep _module"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)

EDIT:

Спасибо, Роман Ньюаза, за правильное указание, что это включает в себя модуль --without для компиляции флагов. Я не использую --without флаги и был просто сосредоточен на получении списка модулей, поэтому я не понял этого; однострочный шрифт может быть изменен, чтобы помочь скомпилировать флаги между двумя установками, например:

2>&1 nginx -V | tr ' '  '\n'

, что совпадает с:

2>&1 nginx -V | xargs -n1

Возможно, также можно передать через sort, чтобы нормализовать индивидуальный порядок компиляции флагов и tr снова, чтобы разделить назначения на разностные строки. Конечный результат:

lsmodn="2>&1 nginx -V | xargs -n1 | sort | tr = '\n'"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)

Это работает, если sort ведет себя одинаково на обоих удаленных хостах (то есть, они являются как GNU, так и BSD). Если вы сравниваете Linux с BSD (Mac OS X), просто переместите | sort | tr = '\n' из lsmodn в локальную оболочку, где sort будет согласован:

lsmodn="2>&1 nginx -V | xargs -n1"
diff -y <(ssh linux eval $lsmodn | sort | tr = '\n') <(ssh macosx eval $lsmodn  | sort | tr = '\n')

Мессье, но он работает.

ответил al-x 26 Jam1000000amSat, 26 Jan 2013 00:30:35 +040013 2013, 00:30:35
2
  • В команде nginx -V (верхний регистр V) будут перечислены все модули, а также другие параметры времени компиляции:

    %nginx -V nginx version: nginx/1.2.2 built by gcc 4.2.1 20070719 TLS SNI support enabled configure arguments: --prefix=/var/www --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-log-path=logs/access.log --error-log-path=logs/error.log --http-client-body-temp-path=/var/www/cache/client_body_temp --http-proxy-temp-path=/var/www/cache/proxy_temp --http-fastcgi-temp-path=/var/www/cache/fastcgi_temp --http-scgi-temp-path=/var/www/cache/scgi_temp --http-uwsgi-temp-path=/var/www/cache/uwsgi_temp --user=www --group=www --with-http_gzip_static_module --with-http_ssl_module --with-http_stub_status_module --with-ipv6 --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module %

    Обратите внимание, что для этой команды никогда не требуется sudo , поскольку полномочия суперпользователя понадобятся только nginx для открытия портов ниже IPPORT_RESERVED (например, порты ниже 1024) и /или определенные лог-файлы для записи.

    Однако, в зависимости от ваших настроек $PATH, вам может потребоваться указать полный путь - например, /usr/sbin/nginx -V или действительно используйте sudo для того, чтобы соответствующий каталог /sbin/ был включен в $PATH.

  • Начиная с новых выпусков nginx - начиная с nginx 1.9.11 (февраль 2016) - динамически загружаемые модули , также â €" http://nginx.org/r/load_module - с помощью директивы load_module.

ответил cnst 26 PM000000100000002131 2017, 22:06:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132