Answers:
nginx -Vසියලු වින්යාස කරන ලද මොඩියුල ලැයිස්තුගත කරයි. පැහැදිලිව සක්රීය / පැටවීමේ විධානයක් නොමැත.
sudo nginx -V
sudoඋබුන්ටු 14.04 භාවිතා කිරීමට අවශ්ය නොවීය
nginx -V
වෙනසකට ලක්විය හැකි එක් ලයිනර්:
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)
සංස්කරණය කරන්න:
--withoutමොඩියුලය සම්පාදනය කරන ධජ මෙයට ඇතුළත් බව නිවැරදිව පෙන්වා දීම ගැන ස්තූතියි, රෝමන් නෙවාසා . මම --withoutකොඩි භාවිතා නොකරන අතර මොඩියුල ලැයිස්තුව ලබා ගැනීම කෙරෙහි පමණක් අවධානය යොමු කළෙමි, එබැවින් මම එය අල්ලා නොගත්තෙමි; ස්ථාපනයන් 2 ක් අතර කොඩි සම්පාදනය කිරීමට උපකාරී වන පරිදි එක්-ලයිනර් වෙනස් කළ හැකිය:
2>&1 nginx -V | tr ' ' '\n'
එය සමාන ය:
2>&1 nginx -V | xargs -n1
සමහර විට ද නල හරහා බව sortබැදීමකට කොඩි idiosyncratic ඇනවුම් කිරීම යථා තත්වයට හා trවෙනස-හැකි රැහැන් මතට භේදය පැවරුම් නැවත. අවසාන ප්රති result ලය:
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 යන දෙකම). ඔබ ලිනක්ස් BSD (මැක් ඕඑස් එක්ස්) සමඟ සංසන්දනය කරන්නේ නම්, එම | 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')
මෙසියර්, නමුත් එය ක්රියා කරයි.
2>&1 nginx -V | tr -- - '\n' | grep _moduleස්ථාපනය කර ඇති විකල්පයන් නොමැතිව ලැයිස්තුගත කර ඇති බැවින් විධානය සම්පූර්ණයෙන්ම වැරදියි!
මෙම 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මෙම විධානය සඳහා කිසි විටෙක අවශ්යතාවයක් නොමැති බව සලකන්න , මන්දයත් සුපිරි පරිශීලක බලයන් අවශ්ය වන්නේ පහත වරායන් විවෘත කිරීම සඳහා 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නියෝගයේ සහාය ඇතිව .
nginx -V සියලුම මොඩියුල පෙන්වන්නේ නැත, එය මට මොඩියුල 20 ක් පමණ පෙන්වයි.
strings /usr/sbin/nginx|grep _module|grep -v configure| sortමගේ nginx හි ඇති සියලුම 200+ මොඩියුලයන් ලැයිස්තුගත කරන දේ මම භාවිතා කරමි.
මම ද උත්සාහ කළ objdumpනමුත් මගේ ස්ථාපනයෙහි ඇති nginx ද්විමය ඉවත් කර ඇති බව පෙනේ.