سؤال كيف يمكنني معرفة أي الأعلام Nginx تم تجميعها؟


كيف يمكنني التحقق من الوحدات التي تمت إضافتها إلى تثبيت nginx؟


211
2018-01-17 20:42


الأصل


هناك طريقة أخرى لقول هذا "كيف يمكنني رؤية أي أعلام Nginx تم تجميعها؟" أردت فقط إضافة ذلك لزيادة قابلية البحث. - Nathan Long


الأجوبة:


nginx -V سوف قائمة جميع الوحدات المكونة. لا يوجد أمر تمكين / تحميل واضح.


268
2018-01-17 21:35



ملاحظة ل noobs: إذا لم يتم تسجيل الدخول كمستخدم أساسي ، فسيكون الأمر sudo nginx -V - its_me
لم أكن في حاجة لاستخدام sudo على أوبونتو 14.04 - Asfand Qazi
يرجى ملاحظة أن هذه المعلمة حساسة لحالة الأحرف. إذا كنت تستخدم الأحرف الصغيرة "-v" ، فستحصل على رقم الإصدار فقط. الحالة العليا "-V" تمنحك التكوين الكامل بما في ذلك قائمة بجميع الوحدات المستخدمة في تجميع ثنائي Nginx. - Illidan
يبدو مثل بعض الأنظمة قد لا تملك $PATH ضبط بشكل صحيح لغير superusers ، حذف جميع sbin الأدلة ، لذلك ، قد تضطر إلى تحديد المسار الكامل للخفي (على سبيل المثال ، /usr/sbin/nginx -V) ، أو في الواقع مجرد استخدام sudo. - cnst


وحيد القطب قادرة على:

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)

تصحيح:

شكرا لك ، رومان Newaza ، لافتا بشكل صحيح إلى أن هذا يشمل --without وحدة تجميع الأعلام. أنا لا أستعمل --without وكانت الأعلام تركز فقط على الحصول على قائمة الوحدات ، لذلك لم أتمكن من التقاط ذلك ؛ يمكن تعديل الخطوط المبطنة للمساعدة على نشر علامات التجميع بين منشأتين ، على النحو التالي:

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

وهو نفس الشيء:

2>&1 nginx -V | xargs -n1

ربما أيضا أن الأنابيب من خلال sort لتطبيع ترتيب الفقهي من الأعلام جمع و tr مرة أخرى لتقسيم المهام إلى خطوط متنوعة. النتيجة النهائية:

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 (Mac OS X) ، فقط قم بتحريك | 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')

Messier ، لكنه يعمل.


60
2018-01-25 20:30



2>&1 nginx -V | tr -- - '\n' | grep _module الأمر خاطئ تمامًا لأنه يسرد بدون- * الخيارات كما تم تثبيتها! - Roman Newaza
إجابة رائعة. من الفائدة لماذا تضع 2> & 1 في المقدمة. من ما رأيت هذا غير عادي؟ - cavalcade
MattTagg في المقدمة فقط حتى يتم استخدامه. ثم في نهاية أي من الأوامر. - kmarsh


  • ال 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 لهذا الأمر ، حيث لن تكون هناك حاجة إلى استخدام القوى الخارقة إلا من خلال nginx لفتح المنافذ أدناه 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 التوجيه.


3
2017-08-26 19:06