Risposte:
nginx -V
elencherà tutti i moduli configurati. Non esiste un comando esplicito di abilitazione / caricamento.
sudo nginx -V
sudo
su Ubuntu 14.04
nginx -V
One-liner diffondibile:
2>&1 nginx -V | tr -- - '\n' | grep _module
Conveniente per confrontare due ambienti:
lsmodn="2>&1 nginx -V | tr -- - '\n' | grep _module"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
MODIFICARE:
Grazie, Roman Newaza, per aver correttamente sottolineato che questo include --without
flag di compilazione dei moduli. Non sto usando le --without
bandiere e mi sono concentrato solo su come ottenere l'elenco dei moduli, quindi non l'ho preso; il one-liner può essere modificato per facilitare la compilazione di flag tra 2 installazioni, in questo modo:
2>&1 nginx -V | tr ' ' '\n'
che è lo stesso di:
2>&1 nginx -V | xargs -n1
Forse anche passare attraverso questo sort
per normalizzare l'ordinamento idiosincratico dei flag di compilazione e di tr
nuovo per dividere le assegnazioni su linee diffondibili. Risultato finale:
lsmodn="2>&1 nginx -V | xargs -n1 | sort | tr = '\n'"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
Funziona se sort
si comporta allo stesso modo su entrambi gli host remoti (cioè sono entrambi GNU o BSD). Se stai confrontando Linux con BSD (Mac OS X), sposta il | sort | tr = '\n'
pezzo fuori lsmodn
dalla shell locale dove sort
sarà coerente:
lsmodn="2>&1 nginx -V | xargs -n1"
diff -y <(ssh linux eval $lsmodn | sort | tr = '\n') <(ssh macosx eval $lsmodn | sort | tr = '\n')
Più disordinato, ma funziona.
2>&1 nginx -V | tr -- - '\n' | grep _module
il comando è totalmente sbagliato in quanto elenca senza- * opzioni installate!
Il nginx -V
comando (V maiuscola) elencherà tutti i moduli, oltre ad altre opzioni di compilazione:
%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
%
Si noti che non è mai necessario per sudo
questo comando, poiché i poteri dei superutente sarebbero necessari solo per nginx per l'apertura delle porte sottostanti IPPORT_RESERVED
(ad es. Porte inferiori a 1024) e / o determinati file di registro per la scrittura.
Tuttavia, a seconda delle $PATH
impostazioni, potrebbe essere necessario specificare il percorso completo, ad esempio /usr/sbin/nginx -V
, oppure utilizzare effettivamente sudo
per /sbin/
includere la directory appropriata in $PATH
.
A partire dalle nuove versioni di nginx - da nginx 1.9.11
(febbraio 2016) - ora sono supportati anche i moduli caricabili dinamicamente - http://nginx.org/r/load_module - con l'aiuto della load_module
direttiva.