اگر بخواهید به طور خلاصه بدانید NGINX چیست، Nginx یک نرم افزار منبعباز (Open source) هست و به عنوان سرویسدهنده وب، پراکسی معکوس (reverse proxying)، سیستم کش (caching)، سیستم load balancing، و شبکه رسانهای (media streaming) و … استفاده میشود. همچنین برای این که بدانید nginx چیست باید در نظر بگیرید که Nginx به عنوان یک وبسرور با ارائه حداکثر کارایی (performance) و پایداری (stability) طراحی شده است. در این مقاله به شما خواهیم گفت انجین ایکس چیست و چگونه کار میکند و در ادامه با نحوه نصب آن روی ابونتو و سنتاواس آشنا خواهیم شد.
علاوه بر قابلیت HTTP سرور، NGINX میتواند به عنوان یک پروکسی سرور برای سرویس ایمیل (IMAP، POP3 و SMTP ) و نیز یک پروکسی معکوس و یا سیستم لودبالانس برای سرورهای HTTP، TCP و UDP عمل کند.
وب سرور چیست؟
از نظر سخت افزاری وب سرور، نوعی سرور میباشد که نرم افزارهای وب سرور و فایلهای component مربوط به وب سایت نظیر اسناد HTML ، تصاویر ، شیوه نامه های CSS و پرونده های جاوا اسکریپت و… را ذخیره میکند. وب سرور به اینترنت متصل می شود و از تبادل داده های فیزیکی با سایر دستگاههای متصل به وب پشتیبانی میکند.
وب سرور انجین ایکس چیست؟
Nginx، به صورت engine-ex تلفظ میشود و یک وب سرور منبع باز است. از زمان ارائه موفق و اولیه خود به عنوان وب سرور کاربرد داشته و همانطور که اشاره شد اکنون به عنوان پروکسی معکوس، حافظه کش HTTP و سیستم توازن بار (Load Balancing) در انواع سرور مجازی نیز استفاده میشود.
تفاوتی ندارد شما خرید سرور مجازی آلمان را انجام دادهاید یا خرید سرور مجازی ایران، در همه موارد میتوانید از Nginx استفاده کنید.
امروزه بسیاری از شرکتهای مشهور بر روی انواع سرور اختصاصی از Nginx استفاده میکنند.(برای اینکه بدانید سرور چیست اینجا کلیک نمایید.)
Nginx در ابتدا توسط Igor Sysoev ایجاد شد و اولین ارائه عمومیآن در اکتبر۲۰۰۴ انجام شد. ایگور اولین بار این نرم افزار را به عنوان راه حلی برای مشکل C10k ارائه داد (مشکل مربوط به مسئله عملکرد مدیریت ۱۰ هزار اتصال همزمان است.)
از آنجا که اساس و بنیان nginx در بهینه سازی عملکرد سیستم (performance) است، این وب سرور از سایر وبسرورهای محبوب، (خصوصاً در موقعیتهایی که دارای محتوای استاتیک و یا درخواستهای همزمان بالایی هستند)، بهتر عمل کرده و به همین دلیل ما نیز از Nginx به عنوان سرور میزبانی وب خود استفاده میکنیم.
از زمان انتشار اصلی NGINX، وب سایتها از صفحات ساده HTML به محتوای پویا و چند وجهی گسترش یافتهاند.
NGINX نیز همراه با آن رشد کرده و اکنون از تمام اجزای وب مدرن، از جمله WebSocket، HTTP / 2، gRPC و پخش چند فرمت ویدیویی (HDS، HLS، RTMP و سایر موارد) نیز پشتیبانی میکند.
تفاوت nginx و آپاچی
هدف اصلی NGINX ایجاد سریعترین وب سرور در دنیای اینترنت بود و حفظ این برتری هنوز هم هدف اصلی این پروژه است. NGINX به طور مداوم Apache و سایر وب سرورها را در معیارهای اندازه گیری عملکرد وب سرور به چالش میکشاند.
تفاوت اصلی بین Apache و NGINX در معماری طراحی آنها نهفته است. Apache از یک رویکرد فرآیند محور (process-driven) استفاده میکند و یک thread جدید برای هر درخواست ایجاد میکند. در حالی که NGINX از یک معماری مبتنی بر رویداد (event-driven) استفاده میکند تا بتواند چندین درخواست را در یک thread مدیریت کند.
برای اینکه بدانید nginx بهتر است یا آپاچی، باید گفت در مقایسه بین وب سرور nginx و apache، با نگاهی به ارقام، به جرات میتوان گفت در صورت ارائه محتوای ثابت یا استاتیک، Nginx برنده نهایی است!
در صورت نیاز به ارائه محتوای پویا یا dynamic نیز میتوان با توجه به آمار زیر به این نتیجه رسید که هر دو وب سرور nginx و آپاچی در پردازش محتوای پویا عالی هستند.
مقایسه آمار استفاده از آپاچی و انجین ایکس
Nginx از زمان انتشار آن، به دلیل استفاده از منابع سبک و توانایی مقیاس گذاری آسان در حداقل سخت افزار، به محبوبیت بیشتری رسیده است. Nginx در ارائه سریع محتوای استاتیک عالی عمل میکند و برای انتقال درخواستهای پویا به سایر نرم افزارهایی که برای آن اهداف مناسب تر هستند، طراحی شده است.
امروزه شرکتهای بزرگی از قبیل GitLab، DuckDuckGo، Microsoft، IBM، Google، Adobe، Salesforce، VMWare، زیراکس، LinkedIn، سیسکو، فیس بوک، Target، Citrix Systems، توییتر، اپل، اینتل و … از nginx استفاده میکنند.
Apache یکی دیگر از وب سرورهای محبوب، شناخته شده و منبع باز است. از لحاظ آمار استفاده، آپاچی محبوب ترین وب سرور است که به گفته W3Techs ، حدود 43.6٪ از وب سایتهایی که از وب سرورهای شناخته شده در جهان، استفاده می کنند، را شامل میشود. Nginx با 41.8 درصد در مکان دوم قرار دارد.
همچنینی سایت Netcraft بررسی خود را روی حدود 233 میلیون دامنه انجام داده و میزان استفاده از Apache توسط کاربران را 31.54٪ و Nginx را 26.20٪ تخمین زده است.
به طور خلاصه میتوان گفت هر دو Apache و NGINX قدرتمند، انعطاف پذیر و توانمند هستند. آخرین نسخههای هر دو سرور در همه زمینهها قابل رقابت هستند. تصمیم گیری در مورد مناسب ترین سرور برای شما تا حد زیادی مبنی بر ارزیابی نیازهای شما و تصمیم گیری در مورد بهترین گزینه است.
آموزش نصب nginx بر روی اوبونتو 20.04
نصب Nginx ساده و راحت است. از آنجا که بستههای مربوطه (packages) ر روی اوبونتو ارائه میشوند، برای نصب به سادگی میتوانید دستورات زیر را اجرا کنید.
sudo apt update
sudo apt install nginx
پس از نصب بسته فوق، میتوانید با اجرای دستورات زیر وضعیت Nginx را بررسی کنید:
sudo systemctl status nginx
نتیجه به شرح زیر نمایش داده میشود.
nginx.service – A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabl>
Active: active (running) since Fri 2020-05-01 22:44:46 CDT; 10s ago
Docs: man:nginx(8)
Main PID: 3361 (nginx)
Tasks: 2 (limit: 4657)
Memory: 3.2M
CGroup: /system.slice/nginx.service
├─3361 nginx: master process /usr/sbin/nginx -g daemon on; master_proces>
└─3362 nginx: worker process
برای اطلاع از نحوه متوقف کردن، شروع، راه اندازی مجدد سرویسهای Nginx، دستورات زیر مفید خواهند بود.
برای متوقف کردن سرویسهای Nginx، دستورات زیر را اجرا کنید:
sudo systemctl stop nginx
برای شروع آن، دستورات زیر را اجرا کنید:
sudo systemctl start nginx
برای شروع مجدد آن، دستورات زیر را اجرا کنید:
sudo systemctl restart nginx
همچنین امکان Reload به شما این امکان را میدهد که بدون راه اندازی مجدد سرویس، تغییرات پیکربندی جدید را اعمال کنید.
sudo systemctl reload nginx
اگر سرور اوبونتو شما توسط فایروال محافظت میشود، باید درگاههای HTTP 80 و HTTP 443 را باز کنید تا بتوانید با Nginx ارتباط برقرار کنید. با فرض اینکه از فایروال پیش فرض اوبونتو استفاده میکنید، میتوانید دستورات زیر را اجرا کنید:
sudo ufw allow ‘Nginx Full’
برای اطمینان از اینکه آیا Nginx به درستی نصب شده است، مرورگر وب خود را باز کرده و آدرس IP سرور یا نام میزبان را وارد نمایید.
http://localhost
آموزش نصب nginx بر روی centOS 8
روش نصب وب سرور Nginx در CentOS Linux 8 به شرح زیر است.
نگه داشتن سیستم، کرنل و بهروزرسانی همه بستههای نصب شده برای امنیت یک کار اساسی ادمین است. بنابراین ابتدا سیستم را به روز کنید، جهت این کار دستورات زیر را اجرا کنید:
sudo yum updateinfo
sudo yum update
sudo reboot
با استفاده از دستور ssh به سرور خود وارد شوید:
ssh user@server-ip
بسته Nginx را جستجو کنید:
sudo yum search nginx
بسته nginx را با استفاده از دستور yum در CentOS 8 نصب کنید:
sudo yum install nginx
تنظیمات فایروال را به روز کنید و پورت TCP 80 و ۴۴۳ را باز کنید.
sudo firewall-cmd –permanent –zone=public –add-service=https –add-service=http
sudo firewall-cmd –reload
چگونه متوجه شویم وبسرور nginx در حال استفاده است یا آپاچی؟
جهت بررسی اینکه آیا روی سرور شما Nginx یا Apache اجرا میشود ساده است. در اکثر وب سایتها، به سادگی میتوانید هدر HTTP سرور را بررسی کنید تا ببینید آیا روی آن Nginx یا Apache نوشته شده است.
جهت این کار با باز نمودن برگه شبکه در Chrome Devtools میتوانید هدرهای HTTP را مشاهده کنید. یا میتوانید سرصفحهها را در ابزاری مانند Pingdom یا GTmetrix نیز بررسی کنید.
کلام آخر
NGINX یک وب سرور است که به عنوان پروکسی ایمیل، پروکسی معکوس و لودبالانسینگ نیز عمل میکند. ساختار این نرم افزار ناهمگام (asynchronous) و مبتنی بر رویداد (event-driven) است که پردازش همزمان بسیاری از درخواستها را امکان پذیر میکند. NGINX نیز بسیار مقیاسپذیر است، به این معنی که خدمات آن همراه با ترافیک مشتریان خود رشد میکند. NGINX و Apache هر دو از بهترین وب سرورهای بازار هستند.
با خرید سرور مجازی وبرمز، وبسایت خود را به یک ابرقدرت آنلاین تبدیل کنید و از سرعت، امنیت و پایداری بینظیر لذت ببرید.
سلام. ممنون بابت توضیحات کامل و جامع
ممنون از همراهی شما 🌺
عالی بود خیلی ممنون