آموزش سرور

خلاصه و مفید درباره وب سرور Nginx

وب سرور Nginx (انجینکس) که به صورت engine-ex تلفظ می شود، یک وب سرور متن باز است که به عنوان یک پروکسی معکوس، کش HTTP و متعادل کننده بار نیز شناخته می شود.

Nginx در اکتبر 2004 منتشر شد و Igor Sysoev اولین شخصی بود که این وب سرور را ایجاد کرد. این نرم افزار در ابتدا با این هدف ایجاد شد که راه حلی برای مشکل C10k باشد. مشکل c10k زمانی ایجاد می شود که وب سروری که از رشته ها برای رسیدگی به درخواست کاربران استفاده می کند، نمی تواند بیش از 10 هزار اتصال را به طور هم زمان مدیریت کند.

Nginx چطور کار می کند؟

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

معماری وب سرور، طرح یا مکانیسم منطقی است که تعیین می کند یک وب سرور چطور درخواست ها، اتصالات و ترافیک وب را مدیریت کند. در حالی که بسیاری از وب سرورها از معماری رشته ای یا فرایند محور ساده استفاده می کنند، NGINX با استفاده از معماری رویداد محور نا همزمان و غیر مسدود کننده، رویکرد متفاوتی را دنبال می کند. این موضوع به وب سرور اجازه می دهد تا چندین اتصال را در یک فرایند واحد مدیریت کند.

طرز کار وب سرور Nginx

در وب سرور NGINX رشته های مشابه تحت یک فرایند کارگر مدیریت می شوند. هر فرایند کارگر شامل واحدهای کوچک تری به نام اتصالات کارگر است. کل این واحد، مسئول رسیدگی به درخواست های همزمان است. اتصالات کارگر درخواست ها را به صورت همزمان به یک فرایند کارگر (worker processes) و به فرایند اصلی (master process) ارسال می کنند و در نهایت، فرایند اصلی نتیجه آن درخواست ها را ارائه می دهد.

ممکن است ساده به نظر برسد، اما یک اتصال کارگر می تواند تا 1024 درخواست مشابه را پاسخ دهد. به همین دلیل، NGINX می تواند هزاران درخواست را بدون هیچ مشکلی پردازش کند و بهترین انتخاب برای وب سایت های پر ترافیکی مانند فروشگاه های اینترنتی، موتورهای جستجو و ذخیره سازی ابری است.

برخی از ویژگی های رایج Nginx عبارت اند از:

  • پروکسی معکوس با کش
  • IPv6
  • تعادل بار
  • پشتیبانی از FastCGI با کش
  • وب سوکت ها
  • مدیریت فایل های استاتیک، فایل های فهرست و فهرست سازی خودکار
  • TLS/SSL with SNI

امنیت وب سرور NGINX

NGINX چندین کنترل امنیتی را به صورت خارج از باکس ارائه می دهد. یکی از این کنترل ها این است که نرخ درخواست ورودی را به مقدار معمولی برای مشتریان واقعی کاهش می دهد تا از سرور شما در برابر حملات DDoS حفاظت کند. همچنین با استفاده از این مکانیزم (محدودیت نرخ) از سرورهای برنامه بالا دستی در برابر درخواست های همزمان و بیش از حد کاربر، محافظت می کند.

امنیت وب سرور انجینکس

کاربران NGINX می توانند با اجازه دادن یا رد کردن دسترسی بر اساس آدرس IP مشتریان، از حملات DDoS جلوگیری کنند. این دسترسی می تواند با رمز عبور، نتیجه درخواست فرعی یا پهنای باند نیز محدود شود. علاوه بر این، NGINX از جدیدترین نسخه امنیت لایه انتقال (TLS) نیز پشتیبانی می کند که رمزگذاری قابل اعتمادی را برای داده های ارسال شده از طریق اینترنت ارائه می دهد.

برای بهره مندی از ویژگی های امنیتی بیشتر، باید از NGINX Plus استفاده کنید. با استفاده از این نسخه پریمیوم، به عملکرد SSO (Single sign-on) دسترسی خواهید داشت که به شما اجازه می دهد تا با استفاده از یک مجموعه از اعتبارنامه ها، به طور ایمن و با استفاده از چندین وب سایت و برنامه، احراز هویت کنید.

برای دسترسی به توصیه های امنیتی بیشتر و اخبار مربوط به آخرین به روزرسانی ها، می توانید به وب سایت این سرور متن باز مراجعه کنند.

مقایسه وب سرور NGINX با وب سرور آپاچی

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

مقایسه Nginx با Apache

پشتیبانی از سیستم عامل

سازگاری با سایر سیستم عامل ها یکی از جزئیاتی است که باید هنگام انتخاب وب سرور در نظر بگیرید. NGINX و Apache هر دو می توانند روی بسیاری از سیستم عامل هایی که از سیستم یونیکس پشتیبانی می کنند اجرا شوند. اما متأسفانه عملکرد NGINX در ویندوز، به اندازه سایر سیستم عامل ها عالی نیست.

پشتیبانی کاربر

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

کارایی

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

محبوبیت

طبق آمار سایت W3Techs، وب سرور NGINX  با 33.9 درصد استفاده، محبوب ترین وب سرور موجود میان سایت ها است. وب سرور آپاچی که زمانی محبوب ترین وب سرور شناخته شده بود اکنون با 31.3 درصد در رتبه دوم قرار گرفته است. اگر نگاهی به سرچ جهانی کلمات آپاچی و NGINX در گوگل از سال 2004 تا به امروز بیندازیم، می بینیم که سرچ کلمه آپاچی به طور مداوم در حال کاهش بوده است، در حالی که NGINX رشد اندکی داشته است.

Nginx به خصوص در مواقعی که محتوای استاتیک و درخواست های همزمان با تعداد بالا وجود دارد، در تست های بنچمارک از سایر وب سرورهای محبوب، بهتر عمل می کند. به همین دلیل است که کمپانی های معتبر و مطرحی مانند Microsoft، IBM، Google، Adobe، Salesforce، VMWare، زیراکس، LinkedIn، Cisco، Facebook، Target، Citrix Systems، Twitter، Apple و بسیاری دیگر، از این وب سرور محبوب استفاده می کنند.

چطور متوجه شویم که از کدام وب سرور روی سایت خود استفاده می کنیم؟

در اکثر وب سایت ها، به سادگی و با بررسی هدر HTTP سرور و مشاهده نام وب سرور، می توانید متوجه شوید که از کدام وب سرور، Nginx یا Apache، استفاده می کنید. برای مشاهده هدر HTTP  کافی است در Chrome Devtools، برگه شبکه یا network tab را راه اندازی کنید. همچنین می توانید هدرها را در ابزارهایی مانند Pingdom یا GTmetrix بررسی کنید.

با این حال، ممکن است هدر HTTP همیشه وب سرور را نشان ندهد. به عنوان مثال، اگر سایت وردپرس شما پشت یک سرویس پروکسی مانند Cloudflare قرار دارد، هدر HTTP سرور به جای نام وب سرور اصلی نام cloudflare را نشان می دهد.

سخن آخر

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

مقایسه محبوبیت انجینکس در برابر آپاچی
مقایسه میزان جستجو کلیدواژه Apche در برابر Nginx

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا