שאלה איך אני יכול לראות אילו דגלים Nginx נערך עם?


כיצד ניתן לבדוק אילו מודולים נוספו להתקנת nginx?


211
2018-01-17 20:42




דרך אחרת לומר את זה היא "איך אני יכול לראות אילו דגלים Nginx היה מלוקט עם?" רק רציתי להוסיף את זה כדי להגדיל את יכולת החיפוש. - Nathan Long


תשובות:


nginx -V תציג את כל המודולים שהוגדרו. אין פקודת הפעלה / טעינה מפורשת.


268
2018-01-17 21:35



הערה עבור noobs: אם לא מחובר כמשתמש root, הפקודה תהיה sudo nginx -V - its_me
לא הייתי צריך להשתמש sudo על אובונטו 14.04 - Asfand Qazi
שים לב שפרמטר זה הוא תלוי רישיות. אם אתה משתמש באותיות קטנות "-v" תקבל רק מספר גירסה. במקרה העליון "-V" נותן לך תצורה מלאה כולל רשימה של כל המודולים המשמשים להידור בינארי Nginx. - Illidan
נראה ש כמו מערכות מסוימות אולי לא $PATH להגדיר כראוי עבור שאינם superuserers, השמטת כל sbin ספריות, לכן, ייתכן שיהיה עליך לציין את הנתיב המלא של הדמון (למשל, /usr/sbin/nginx -V), או פשוט להשתמש sudo. - cnst


Diff-one-liner:

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 כדי לנרמל הזמנה אידיוסינקרטית של דגלים הידור tr שוב לפצל הקצאות על קווי diff- מסוגל. תוצאה סופית:

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

זה עובד אם sort מתנהג כך גם על המארחים מרחוק (כלומר, הן גנו או 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')

מסייה, אבל זה עובד.


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 עבור פקודה זו, כמו כוחות superuser יהיה צורך רק על ידי 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