Nginx සම්පාදනය කරන ලද කොඩි මොනවාදැයි මා දකින්නේ කෙසේද?


236

Nginx ස්ථාපනයකට එකතු කර ඇති මොඩියුල මොනවාදැයි පරීක්ෂා කරන්නේ කෙසේද?


7
මෙය පැවසීමේ තවත් ක්‍රමයක් නම් "එන්ජින්ක්ස් සම්පාදනය කරන ලද කොඩි මා දකින්නේ කෙසේද?" සෙවීමේ හැකියාව වැඩි කිරීම සඳහා එය එක් කිරීමට අවශ්‍ය විය.
නේතන් ලෝන්ග්

Answers:


300

nginx -Vසියලු වින්‍යාස කරන ලද මොඩියුල ලැයිස්තුගත කරයි. පැහැදිලිව සක්‍රීය / පැටවීමේ විධානයක් නොමැත.


9
Noobs සඳහා සටහන: root පරිශීලකයෙකු ලෙස ලොග් වී නොමැති නම්, විධානය වනුයේsudo nginx -V
its_me

5
මට sudoඋබුන්ටු 14.04 භාවිතා කිරීමට අවශ්‍ය නොවීය
අස්ෆන්ඩ් කාසි

5
මෙම පරාමිතිය සිද්ධි සංවේදී බව කරුණාවෙන් සලකන්න. ඔබ කුඩා අකුරු "-v" භාවිතා කරන්නේ නම් ඔබට ලැබෙන්නේ අනුවාද අංකය පමණි. ඉහළ නඩුව "-V" මඟින් Nginx ද්විමය සම්පාදනය සඳහා භාවිතා කරන සියලුම මොඩියුල ලැයිස්තුව ඇතුළුව සම්පූර්ණ වින්‍යාසය ලබා දෙයි.
ඉලිඩන්

1
සමහර පද්ධති $PATHසුපිරි නොවන අය සඳහා නිසි ලෙස කට්ටලය නොතිබූ බවක් පෙනේ , සියලු sbinනාමාවලි මඟ හැරී ඇත, එබැවින් ඔබට ඩීමනයේ සම්පූර්ණ මාර්ගය (උදා. /usr/sbin/nginx -V) නියම කිරීමට සිදු විය හැකිය , නැතහොත් ඇත්ත වශයෙන්ම භාවිතා කරන්න sudo.
cnst

@its_me ... ධාවනය කිරීමට ඔබට සුඩෝ අවශ්‍ය නොවනු ඇතnginx -V
කාර්සන් රයින්කේ

66

වෙනසකට ලක්විය හැකි එක් ලයිනර්:

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
2>&1 nginx -V | tr -- - '\n' | grep _moduleස්ථාපනය කර ඇති විකල්පයන් නොමැතිව ලැයිස්තුගත කර ඇති බැවින් විධානය සම්පූර්ණයෙන්ම වැරදියි!
රෝමන් නිව්සා

නියම පිළිතුර. ඔබ 2> & 1 ඉදිරියෙන් තබන්නේ ඇයි? මා දුටු දෙයින් එය වඩාත් අසාමාන්‍ය දෙයක්ද?
අශ්වාරෝහක

AttMattTagg එය භාවිතා කරන තුරු එය ඉදිරියෙන් සිටියි. එවිට එය එක් එක් විධානය අවසානයේ වේ.
kmarsh

3
  • මෙම 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නියෝගයේ සහාය ඇතිව .


2

nginx -V සියලුම මොඩියුල පෙන්වන්නේ නැත, එය මට මොඩියුල 20 ක් පමණ පෙන්වයි.

strings /usr/sbin/nginx|grep _module|grep -v configure| sortමගේ nginx හි ඇති සියලුම 200+ මොඩියුලයන් ලැයිස්තුගත කරන දේ මම භාවිතා කරමි.

මම ද උත්සාහ කළ objdumpනමුත් මගේ ස්ථාපනයෙහි ඇති nginx ද්විමය ඉවත් කර ඇති බව පෙනේ.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.