Soru Nginx'in hangi bayraklarla derlendiğini nasıl görebilirim?


Bir nginx kurulumuna hangi modüllerin eklendiğini nasıl kontrol edebilirim?


211
2018-01-17 20:42


Menşei


Bunu söylemenin başka bir yolu da "Nginx'in hangi bayraklarla derlendiğini nasıl görebilirim?" Sadece aranabilirliği artırmak için bunu eklemek istedim. - Nathan Long


Cevaplar:


nginx -V tüm yapılandırılmış modülleri listeler. Açık etkinleştirme / yükleme komutu yoktur.


268
2018-01-17 21:35



Noobs için not: Kök kullanıcı olarak giriş yapmadıysanız, komut sudo nginx -V - its_me
Kullanmak zorunda değildim sudo Ubuntu 14.04 tarihinde - Asfand Qazi
Lütfen bu parametrenin büyük / küçük harfe duyarlı olduğunu unutmayın. Küçük harf "-v" kullanırsanız, sadece sürüm numarası alırsınız. Büyük harf "-V", Nginx ikili dosyalarını derlemek için kullanılan tüm modüllerin listesini içeren eksiksiz bir konfigürasyon sağlar. - Illidan
Görünüyor bazı sistemler gibi olmayabilir $PATH Süper olmayanlar için uygun şekilde ayarlanmış, tüm sbin dizinler, bu yüzden, daemonun tam yolunu belirtmeniz gerekebilir (ör. /usr/sbin/nginx -V), ya da gerçekten sadece kullanın sudo. - cnst


Diff-güçlü tek liner:

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

İki ortamı karşılaştırmak için uygun:

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

DÜZENLE:

Teşekkürler, Roman Newaza, bunun içerdiğini doğru bir şekilde belirtmek için. --without modül derleme bayrakları. Kullanmıyorum --without bayraklar ve sadece modül listesini almaya odaklanmıştı, ben de bunu yakalamadım; Tek liner, difüzyon bayraklarını 2 kurulum arasında derlemeye yardımcı olacak şekilde değiştirilebilir:

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

ile aynı olan:

2>&1 nginx -V | xargs -n1

Belki de bunu boruyla sort derleme bayraklarının tekdüze sıralamasını normalleştirmek tr tekrar atamaları farklı çizgiler üzerinde bölmek için. Son sonuç:

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

Eğer çalışırsa sort her iki uzak ana bilgisayarda da aynı şekilde davranır (örn. bunlar hem GNU hem de BSD'dir). Linux'u BSD (Mac OS X) ile karşılaştırıyorsanız, | sort | tr = '\n' parçalamak lsmodn yerel kabuğa sort tutarlı olacak:

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

Messier, ama işe yarıyor.


60
2018-01-25 20:30



2>&1 nginx -V | tr -- - '\n' | grep _module komut, kurulu olduğu gibi * opsiyonlarını listelediği için tamamen yanlıştır! - Roman Newaza
harika cevap. ilgi dışında neden 2> & 1 öne koydunuz. Gördüğümden daha sıradışı mıyım? - cavalcade
@MattTagg, kullanılıncaya kadar sadece önde. Sonra her iki komuta sonunda. - kmarsh


  • nginx -V komutu (büyük harf V) tüm modülleri ve diğer derleme zaman seçeneklerini listeler:

    %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 %

    Hiçbir zaman ihtiyaç duyulmadığını unutmayın. sudo Bu komut için süper kullanıcı yetkileri sadece aşağıdaki bağlantı noktalarını açmak için nginx tarafından gerekli olacaktı IPPORT_RESERVED (ör., 1024’ün altındaki portlar) ve / veya yazma için belirli günlük dosyaları.

    Ancak, bağlı olarak $PATH ayarları, tam yolu belirtmeniz gerekebilir. /usr/sbin/nginx -Vya da gerçekten kullanın sudo uygun olana sahip olmak /sbin/ dizine dahil edilmelidir $PATH.

  • Daha yeni nginx sürümleriyle başlıyor - nginx 1.9.11 (Şubat 2016) - dinamik olarak yüklenebilen modüller artık destekleniyorda - http://nginx.org/r/load_module - yardımıyla load_module direktif.


3
2017-08-26 19:06