خط فرمان¶

ساخت وبلاگ

این صفحه به شما نشان می دهد که چگونه NGINX را شروع کنید ، و پس از اجرا ، چگونه آن را کنترل کنید تا متوقف شود یا مجدداً راه اندازی شود.

شروع nginx¶

nginx از خط فرمان ، معمولاً از/usr/bin/nginx فراخوانی می شود.

مثال اساسی شروع nginx¶

مثال پیشرفته شروع nginx¶

گزینه ها¶

-?, -h کمک چاپ
-v نسخه چاپی
-V چاپ نسخه Nginx ، نسخه کامپایلر و پیکربندی پارامترها.
-t اجرا نکنید ، فقط پرونده پیکربندی را آزمایش کنید. NGINX پیکربندی را برای نحو صحیح بررسی می کند و سپس سعی می کنید پرونده های ارجاع شده در پیکربندی را باز کنید.
-q پیام های غیر خطا را در حین تست پیکربندی سرکوب کنید.
-s سیگنال Send signal to a master process: stop, quit, reopen, reload. (version>= 0. 7. 53)
-p پیشوند Set prefix path (default: /usr/local/nginx/ ). (version>= 0. 7. 53)
-C نام پرونده مشخص کنید که پرونده پیکربندی nginx باید به جای پیش فرض از آن استفاده کند.
دستورالعمل های G Set global directives. (version>= 0. 7. 4)

Nginx تنها چند پارامتر خط فرمان دارد. بر خلاف بسیاری از سیستم های نرم افزاری دیگر ، پیکربندی کاملاً از طریق پرونده پیکربندی انجام می شود (تصور کنید که).

متوقف کردن یا راه اندازی مجدد nginx¶

دو روش برای کنترل Nginx وجود دارد که در حال اجرا است. اولین مورد این است که دوباره با پارامتر خط فرما ن-s تماس بگیرید. به عنوان مثال ،/USR/BIN/NGIN X-S STOP سرور NGINX را متوقف می کند.(گزینه های دیگر در بخش قبلی آورده شده است)

راه دوم برای کنترل NGINX ارسال سیگنال به فرآیند اصلی Nginx است ... به طور پیش فرض NGINX شناسه فرآیند اصلی خود را به /usr/local/nginx/logs/nginx. pid می نویسد. می توانید این کار را با عبور پارامتر با ./configure در زمان کامپایل یا با استفاده از دستورالعمل PID در پرونده پیکربندی تغییر دهید.

در اینجا نحوه ارسال سیگنال Quit (خاموش کردن برازنده) به فرآیند Master Nginx آورده شده است:

روند کارشناسی ارشد می تواند سیگنال های زیر را اداره کند:

فرآیندهای جدید کارگر را با پیکربندی جدید شروع کنید

با خوشحالی فرآیندهای قدیمی کارگر را خاموش کنید

دیگر نیازی به کنترل فرآیندهای کارگر نیست. با این حال ، آنها از برخی سیگنال ها نیز پشتیبانی می کنند:

 

اصطلاح ، int خاموشی سریع
ترک تعطیل برازنده
USR1 پرونده های ورود به سیستم را مجدداً باز کنید

بارگیری پیکربندی جدید با استفاده از سیگنال ها

NGINX از چند سیگنال پشتیبانی می کند که می توانید برای کنترل عملکرد آن در حالی که در حال اجرا است استفاده کنید.

رایج ترین آنها 15 است که فقط روند اجرا را متوقف می کند:

با این حال ، گزینه جالب تر این است که قادر به تغییر پیکربندی NGINX در پرواز است (توجه کنید که ما پیکربندی را قبل از بارگیری مجدد آن آزمایش می کنیم):

آنچه اتفاق می افتد این است که وقتی Nginx سیگنال HUP را دریافت می کند ، سعی می کند پرونده پیکربندی را تجزیه کند (در صورت وجود ، در غیر این صورت پیش فرض) ، و در صورت موفقیت آمیز ، سعی می کند پیکربندی جدیدی را اعمال کند (یعنی پرونده های ورود به سیستم را دوباره باز کنید وسوکت ها را گوش دهید). در صورت موفقیت ، NGINX فرآیندهای جدید کارگر را اجرا می کند و به تعطیل شدن برازنده به کارگران قدیمی سیگنال می دهد. کارگران مطلع شده از سوکت های گوش گوش نزدیک می شوند اما همچنان به مشتریان فعلی خدمت می کنند. پس از تعطیل شدن کارگران قدیمی به کلیه مشتری ها. اگر Nginx نتواند با موفقیت پیکربندی جدید را اعمال کند ، با پیکربندی قدیمی به کار خود ادامه می دهد.

RequestForReviewCategory -(درخواست بررسی: فقط با فرآیندهای کارگر در HUP چه اتفاقی می افتد؟ -olle)

ارتقاء به یک باینری جدید در پرواز

اگر نیاز به جایگزین کردن باینری Nginx با نسخه جدید دارید (هنگام به روزرسانی به نسخه جدید یا اضافه کردن/حذف ماژول های سرور) ، می توانید این کار را بدون هیچ گونه خرابی در سرویس انجام دهید - هیچ درخواست ورودی از بین نمی رود.

ابتدا باینری قدیمی را با یک مورد جدید جایگزین کنید ، سپس سیگنال USR2 را به روند کارشناسی ارشد ارسال کنید. این پرونده . pid خود را به . oldbin تغییر نام می دهد (به عنوان مثال/usr/local/nginx/logs/nginx. pid. oldbin) ، سپس یک باینری جدید را اجرا می کند ، که به نوبه خود یک فرآیند اصلی جدید و فرآیندهای جدید کارگر را آغاز می کند:

در این مرحله ، دو مورد از Nginx در حال اجرا هستند و درخواست های دریافتی را با هم انجام می دهند. برای فاز نمونه قدیمی ، شما باید سیگنال وینچ را به روند کارشناسی ارشد قدیمی بفرستید ، و فرآیندهای کارگر آن شروع به تعطیل با لطف می کنند:

پس از مدتی ، فرآیندهای قدیمی کارگران ترک می شوند و فقط فرآیندهای جدید کارگران در حال رسیدگی به درخواست های دریافتی هستند:

در این مرحله شما هنوز هم می توانید به سرور قدیمی برگردید زیرا با دنبال کردن این مراحل ، سوکت های گوش خود را هنوز بسته نکرده است:

  • ارسال سیگنال HUP به فرآیند قدیمی قدیمی - این کار را بدون بارگیری مجدد یک پرونده پیکربندی شروع می کند
  • سیگنال ترک را به فرآیند جدید استاد ارسال کنید تا با لطف فرایندهای کارگران خود را خاموش کنید
  • ارسال سیگنال اصطلاح به فرآیند جدید کارشناسی ارشد برای مجبور کردن آن
  • اگر به دلایلی فرآیندهای جدید کارگر ترک نشوند ، سیگنال کشتن را برای آنها ارسال کنید

پس از ترک روند کارشناسی ارشد جدید ، روند کارشناسی ارشد قدیمی ، پسوند را از پرونده . pid خود حذف می کند ، و همه چیز دقیقاً مانند قبل از تلاش به روزرسانی است.

اگر به روزرسانی موفقیت آمیز است و می خواهید سرور جدید را نگه دارید ، سیگنال ترک را به فرآیند قدیمی اصلی ارسال کنید تا فقط سرور جدید در حال اجرا باشد:

استراتژی برای تحلیل فاندمنتال...
ما را در سایت استراتژی برای تحلیل فاندمنتال دنبال می کنید

برچسب : نویسنده : سعید شیخ‌زاده بازدید : <-PostHit-> تاريخ : دوشنبه 8 خرداد 1402 ساعت: 21:36