Nginx یک وب سرور است که برای رندر کردن صفحاتی که با استفاده از HTML، CSS و جاوا اسکریپت توسعه داده‌ایم استفاده می‌شود. این یکی از برترین وب سرورها در بین سرورهای موجود در بازار است. NGINX برای معماری single threadedو event-driven و master-slave پیشنهاد داده می‌شود.

معماری Nginx

nginx از معماری master-slave با پشتیبانی از event-drivenو asynchronous و non-blocking model پیروی می کند.

Nginx Architecture Diagram

Nginx Architecture Diagram

وب سرور Nginx از سه بخش زیر تشکیل شده است:

  • Master
  • Workers
  • Cache

Master

همانطور که قبلاً گفته شد، وب سرور Nginx یک طراحی master-slave دارد. بر اساس درخواست کلاینت به workers ها job داده میشود . هنگامی که jog به workers واگذار شد، master به جای اینکه منتظر پاسخ workers باشد، به دنبال درخواست بعدی از کلاینت خواهد بود. هنگامی که پاسخ workers دریافت شد، پاسخ برای کاکرارسال می شود.

در یک رویکرد single-threaded ، هر workers ممکن است بیش از 1000 درخواست را در یک زمان پردازش کند و بعد از از اتمام مراحل پاسخ را به master  تحویل داده می شود.

Cache

از Cache وب سرورNginx برای نمایش سریع صفحه با بازیابی آن از حافظه کش به جای سرور استفاده می شود. هر درخواستی که به سمت وب سرور ارسال می شود ابتدا کش بررسی می شود در صورت وجود به کاربر بازگردانده می شود و درصورتی که در کش نباشد از سرور دریافت کرده و پاسخ را به کاربر می گرداند و همان پاسخ را برای دفعات بعدی در کش ذخیره می کند.

ویژگی های وب سرور Nginx

  1. پشتیبانی و مدیریت به صورت همزمان با رم پایین
  2. فشرده‌سازی و gzip
  3. پشتیبانی از پروتکل SPDY
  4. احراز هویت با استفاده از سرورهای خارجی HTTP
  5. دارای قابلیت Load balancing
  6. دارای قابلیت Fault tolerance
  7. سازگاری با IPv6
  8. پشتیبانی از STARTTL
  9. پردازش داده‌های XSLT
  10. پشتیبانی از TLS
  11. پشتیبانی از SSL
  12. سرویس‌دهی به فایل‌های استاتیک
  13. پروکسی معکوس
  14. احراز هویت معکوس
  15. سطوح دسترسی
  16. پشتیبانی از Fast CGI
  17. کنسول مدیریتی آسان و کاربرپسند
  18. دوباره نوشتن URL ها (URL Rewriting)

 

Performance و مقیاس پذیری وب سرور Nginix

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

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

Nginx Architecture Master Process

Nginx Architecture Master Process