Une autre façon de dire cela est "comment puis-je voir avec quels drapeaux Nginx a été compilé?" Je voulais juste ajouter cela pour augmenter la capacité de recherche.
Nathan Long
Réponses:
291
nginx -Vlistera tous les modules configurés. Il n'y a pas de commande d'activation / chargement explicite.
Note pour noobs: Si non connecté en tant qu'utilisateur root, la commande seraitsudo nginx -V
its_me
4
Je n'ai pas eu besoin d'utiliser sudoUbuntu 14.04
Asfand Qazi
5
Veuillez noter que ce paramètre est sensible à la casse. Si vous utilisez des minuscules "-v", vous n'obtiendrez que le numéro de version. Les majuscules "-V" vous donnent une configuration complète incluant la liste de tous les modules utilisés pour compiler le binaire Nginx.
Illidan
1
Il semble que certains systèmes ne disposent peut-être pas de l' $PATHensemble défini pour les non-utilisateurs, omettant tous les sbinrépertoires. Vous devrez donc peut-être spécifier le chemin complet du démon (par exemple, /usr/sbin/nginx -V) ou simplement l'utiliser sudo.
cnst
@its_me ... vous n'avez probablement pas besoin de sudo pour courirnginx -V
Merci, Roman Newaza, d’avoir correctement indiqué que cela inclut --withoutles indicateurs de compilation de module. Je n'utilise pas de --withoutdrapeaux et je voulais juste obtenir la liste des modules, alors je ne l'ai pas comprise. one-liner peut être modifié pour faciliter la compilation des drapeaux entre 2 installations, comme ceci:
2>&1 nginx -V | tr ' ' '\n'
qui est le même que:
2>&1 nginx -V | xargs -n1
Peut-être aussi dirigerez-vous cela sortpour normaliser l'ordre particulier d'indicateurs de compilation et trdiviser à nouveau les affectations sur des lignes différentes. Résultat final:
Cela fonctionne si le sortcomportement est le même sur les deux hôtes distants (c’est-à-dire qu’ils sont à la fois GNU ou BSD). Si vous comparez Linux à BSD (Mac OS X), déplacez simplement l' | sort | tr = '\n'élément lsmodnvers le shell local où sortil sera cohérent:
Notez que sudocette commande n’est jamais nécessaire , car nginx n’aurait besoin que des pouvoirs de superutilisateur pour ouvrir les ports situés au-dessous IPPORT_RESERVED(par exemple, les ports inférieurs à 1024) et / ou certains fichiers journaux en écriture.
Toutefois, en fonction de vos $PATHparamètres, vous devrez peut-être spécifier le chemin complet - par exemple /usr/sbin/nginx -V, ou bien utiliser sudopour que le /sbin/répertoire approprié soit inclus dans le fichier $PATH.
Réponses:
nginx -V
listera tous les modules configurés. Il n'y a pas de commande d'activation / chargement explicite.la source
sudo nginx -V
sudo
Ubuntu 14.04$PATH
ensemble défini pour les non-utilisateurs, omettant tous lessbin
répertoires. Vous devrez donc peut-être spécifier le chemin complet du démon (par exemple,/usr/sbin/nginx -V
) ou simplement l'utilisersudo
.nginx -V
Diffilable one-liner:
Pratique pour comparer deux environnements:
MODIFIER:
Merci, Roman Newaza, d’avoir correctement indiqué que cela inclut
--without
les indicateurs de compilation de module. Je n'utilise pas de--without
drapeaux et je voulais juste obtenir la liste des modules, alors je ne l'ai pas comprise. one-liner peut être modifié pour faciliter la compilation des drapeaux entre 2 installations, comme ceci:qui est le même que:
Peut-être aussi dirigerez-vous cela
sort
pour normaliser l'ordre particulier d'indicateurs de compilation ettr
diviser à nouveau les affectations sur des lignes différentes. Résultat final:Cela fonctionne si le
sort
comportement est le même sur les deux hôtes distants (c’est-à-dire qu’ils sont à la fois GNU ou BSD). Si vous comparez Linux à BSD (Mac OS X), déplacez simplement l'| sort | tr = '\n'
élémentlsmodn
vers le shell local oùsort
il sera cohérent:Messier, mais ça marche.
la source
2>&1 nginx -V | tr -- - '\n' | grep _module
La commande est totalement fausse car elle liste les options sans- * telles qu'installées!La
nginx -V
commande (V majuscule) listera tous les modules, ainsi que d'autres options de compilation:%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 %
Notez que
sudo
cette commande n’est jamais nécessaire , car nginx n’aurait besoin que des pouvoirs de superutilisateur pour ouvrir les ports situés au-dessousIPPORT_RESERVED
(par exemple, les ports inférieurs à 1024) et / ou certains fichiers journaux en écriture.Toutefois, en fonction de vos
$PATH
paramètres, vous devrez peut-être spécifier le chemin complet - par exemple/usr/sbin/nginx -V
, ou bien utilisersudo
pour que le/sbin/
répertoire approprié soit inclus dans le fichier$PATH
.À partir des nouvelles versions de nginx - depuis
nginx 1.9.11
(février 2016) - les modules chargeables dynamiquement sont désormais également pris en charge - http://nginx.org/r/load_module - à l'aide de laload_module
directive.la source
nginx -V
ne montre pas tous les modules, il montre environ 20 modules pour moi.J'utilise
strings /usr/sbin/nginx|grep _module|grep -v configure| sort
qui répertorie plus de 200 modules dans mon nginx.J'ai aussi essayé,
objdump
mais on dirait que le nginx de mon installation a dépouillé le binaire.la source