آموزش نصب Nginx و تنظیم در Ubuntu – Debian – Almalinux – Rocky linux و ویندوز
آموزش نصب Nginx (انجینکس)
Nginx (انجینکس) یک وب سرور رایگان و منبع باز با عملکرد بالا است که برای مدیریت وب سایت های پر ترافیک و به عنوان reverse proxy، لود بالانسر و پخش مدیا استفاده میشه. وب سرور انجینکس در مقایسه با Apache عملکرد بهتری داره و قادر به سرویس دهی به پروتکل های مختلف مانند HTTP، TCP، UDP و ایمیل (IMAP، SMTP و POP3) است. Nginx برای سیستم عامل های لینوکسی مانند Debian، CentOS و RedHat قابل استفاده است و به دلیل انعطاف پذیری و کارایی بالا برای وب سایت های شخصی و شرکتی انتخاب مناسبی است.
مزایا Nginx | معایب Nginx |
---|---|
کارایی بالا: پردازش همزمان تعداد زیادی درخواست با مصرف کم منابع | تنظیمات پیچیدهتر: برای کاربران مبتدی تنظیمات ممکن است پیچیده باشد. |
مقیاسپذیری بالا: مناسب برای سایت های با ترافیک بالا و پشتیبانی از reverse pr-oxy و load balancing. | پشتیبانی کمتر برای ویژگیهای داینامیک: محدودیت در پردازش ویژگی های داینامیک نسبت به Apache. |
مصرف منابع کم: نسبت به وب سرورهای دیگر مصرف کمتری از RAM و CPU دارد. | مستندات کمتر در برخی موارد: برخی ویژگی ها و مشکلات کمتر مستند شده اند. |
امنیت بالا: به دلیل ویژگیهای built-in مانند محدود کردن دسترسی و حفاظت از درخواست ها | نیاز به تنظیمات اضافی برای برخی ویژگیها: مانند ماژولهای خاص که ممکن است در ابتدا غیرفعال باشند. |
مزایای استفاده از Nginx
Nginx به دلیل طراحی سبک و کارایی بالا در پاسخگویی به درخواست های وب سایت های پر ترافیک شناخته شده است. این وب سرور قادر است درخواست های زیادی را به طور همزمان پردازش کنه و به همین دلیل گزینه ای مناسبی برای سایت هایی با حجم ترافیک بالا است. از ویژگی های دیگه Nginx می توان به پشتیبانی از Cache، فشرده سازی فایل ها، و قابلیت مقیاس پذیری برای سرورهای مختلف اشاره کرد.
Nginx در مقایسه با Apache
یکی از مزایای اصلی Nginx نسبت به Apache، توانایی آن در مدیریت تعداد زیادی درخواست همزمان است. Nginx با استفاده از معماری غیرهمگام (asynchronous) و event-driven، میتونه منابع کمتری مصرف کرده و عملکرد بهتری داشته باشه، به ویژه در هنگام بارگذاری صفحات سنگین یا درخواست های متعدد. این ویژگی ها باعث شده که Nginx به عنوان وب سرور پیشرفته برای وب سایت های پویا و پیچیده شناخته شود.
کاربردهای مختلف Nginx
Nginx تنها به عنوان یک وب سرور محدود نمی شود. این نرم افزار به عنوان یک لود بالانسر برای توزیع بار ترافیک به سرورهای مختلف، reverse proxy برای بهبود عملکرد و امنیت، و سرور رسانه ای برای پخش ویدئو و فایل های صوتی مورد استفاده قرار می گیرد. همچنین، Nginx می تواند برای مدیریت ترافیک ورودی به سرورهای ایمیل (IMAP، SMTP، POP3) نیز به کار رود.
در این آموزش نحوه نصب Nginx در سیستم عامل Ubuntu – Debian – Almalinux – Rocky linux و ویندوز را بررسی میکنیم.
نصب Nginx در ubuntu (نصب انجین ایکس روی اوبونتو)
نصب Nginx در اوبونتو ساده است، چون بسته های آن در مخازن اوبونتو موجود است. برای نصب، کافیه که با دستور apt-get بسته Nginx رو نصب کنید. بعد از خرید VPS، میتونین به راحتی این وب سرور را راه اندازی کنید.
sudo apt update sudo apt install nginx
برای فعال کردن سرویس Nginx، بصورتیکه بعد از هر ریستارت سیستم، بصورت خودکار فعال بشه، از دستور زیر استفاده کنید.
sudo systemctl enable nginx
بعد از نصب پکیج بد دستور بالا میتونین با اجرای دستورات زیر وضعیت Nginx را بررسی کنید
sudo systemctl status nginx
مدیریت Nginx
برای مدیریت سرویس های Nginx، از دستورات زیر استفاده کنید
غیرفعال کردن nginx :
sudo systemctl stop nginx
فعال کردن Nginx:
sudo systemctl start nginx
راهاندازی مجدد Nginx (برای اعمال تغییرات):
sudo systemctl restart nginx
با رگذاری مجدد تنظیمات بدون راهاندازی مجدد سرویس :
sudo systemctl reload nginx
در صورتیکه فایروال ufw در Ubuntu فعال است، لازم هست که پورت های HTTP 80
و HTTP 443
که برای وب سرور هستند را باز کنید.
sudo ufw allow 'Nginx Full'
برای بررسی عملکرد Nginx، آدرس IP سرور را در مرورگر وارد کنید:
http://localhost
آموزش نصب Nginx در Debian
آموزش نصب انجینکس در debian همانند نصب در سیستم عامل اوبونتو است، همان مراحل سیستم عامل اوبونتو را میتوانید انجام بدین. در vps آمریکا یا سرور مجازی امارات برای راه اندازی سایت میتوانید از این وب سرور استفاده کنید.
sudo apt update && sudo apt upgrade -y sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx sudo ufw allow 'Nginx Full'
آموزش نصب Nginx در Rocky linux و Almalinux
برای نصب Nginx روی Rocky Linux، ابتدا سیستم عامل را بروز کنید.
sudo dnf update -y
Nginx در مخازن پیشفرض Rocky Linux موجود است، بنابراین میتونین بصورت مستقیم از مخزن نصب و سرویسشو فعالسازی کنید.
sudo dnf install nginx -y sudo systemctl enable --now nginx sudo systemctl status nginx
اگر از Firewalld استفاده میکنین، باید پورتهای HTTP و HTTPS رو باز کنید.
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
آموزش نصب Nginx در ویندوز (windows)
Nginx دارای باینری های از پیش کامپایل شده برای ویندوز است که شروع به کار را بسیار آسان می کند. اگر از قبل کامپایل نشده بود، باید یک کامپایلر با محیط کامل روی رایانه خود نصب کنیم. خوشبختانه، نیاز نیست. برای دانلود آخرین نسخه Nginx برای ویندوز از لینک زیر استفاده کنید:
https://nginx.org/en/download.html
هنگامی که دانلود انجام شد، می توانیم آن را extract کنید. من از دایرکتوری c:\nginx-1.17.0 استفاده می کنم.
برای نصب و اجرای Nginx، فایل Nginx.exe را انتخاب کرده و دوبار کلیک کنید. اکنون برای استفاده فعال شده است. آدرس های زیر، مسیر های مهم انجینکس در ویندوز هستند. مسیر پیش فرض root در پوشه html است، یعنی فایل هاتون رو باید در این پوشه قرار بدین.
Confis in -> c:\nginx-1.17.0\conf\ Default config -> c:\ nginx-1.17.0\conf\nginx.conf Logs will be in -> c:\ nginx-1.17.0\logs Default webroot is -> c:\ nginx-1.17.0\html\ Default listen address -> http://localhost
تنظیمات Nginx
Nginx به طور پیش فرض در سرورهای اوبونتو پوشه های خاصی را برای فایل های تنظیمات ایجاد میکنه. در اینجا به آدرس های اصلی این فایل هارو بررسی میکنیم :
فایلهای تنظیمات اصلی Nginx:
تمام فایلهای تنظیمات و تنظیمات Nginx در پوشه /etc/nginx قرار دارن.
فایل تنظیمات اصلی Nginx:
فایل تنظیمات اصلی Nginx در مسیر /etc/nginx/nginx.conf قرار داره.
تنظیمات وبسایتها (Server Blocks):
تنظیمات هر وبسایت در یک فایل جداگانه به نام server block میزبانی میشه. این فایلها در مسیر /etc/nginx/sites-available ذخیره میشن.
فعالسازی server block ها:
وقتی یک سایت جدید در Nginx اضافه میکنی، فایل تنظیماتش در پوشه /etc/nginx/sites-available ذخیره میشه، ولی تا زمانی که به Nginx نگی از اون فایل استفاده کنه، سایت فعال نمیشه. برای فعال کردنش، باید یک لینک از اون فایل توی پوشه /etc/nginx/sites-enabled بسازی تا Nginx بتونه اون رو بخونه و اجرا کنه.
مدیریت آسان تنظیمات:
برای مدیریت راحتتر Nginx، بهتر است یک فایل تنظیمات جداگانه برای هر دامنه ایجاد کنید. میتونین به تعداد دلخواه فایلهای server block بسازید و آنها را به راحتی مدیریت کنین.
استفاده از Snippets:
قطعخ کدهایی از تنظیمات که نیاز به استفاده مکرر دارند، میتونن در پوشه /etc/nginx/snippets ذخیره بشن تا در فایلهای تنظیمات سایت Nginx گنجانده بشن.
فعالسازی و غیرفعالسازی Server Block ها
برای فعال کردن یک فایل server block، دستور زیر را اجرا کنید:
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
برای غیرفعال کردن یک فایل server block، دستور زیر را اجرا کنید:
sudo rm /etc/nginx/sites-enabled/example.com.conf
علاوه بر فایلهای تنظیمات اصلی، تنظیمات و فایلهای اضافی دیگری نیز در پوشههای مختلف Nginx موجود هستند. برای کسب اطلاعات بیشتر، میتونین از مستندات وب سرور Nginx استفاده کنین.
نصب ssl روی nginx
برای تنظیم SSL از 2 راه میتونین استفاده کنین، یا دامنه ای که دارید به CDN هایی مثل cloudflare متصل کنین تا بدون انجام تنظیمات در داخل سرور، بتونین از SSL استفاده کنین، یا برای نصب SSL در Nginx، مراحل زیر رو دنبال کنید و Certbot نصب کنید.
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx
اتصال دامنه به SSL در nginx
Certbot بصورت خودکار تنظیمات Nginx رو بروزرسانی میکنه تا از SSL استفاده کنه، Certbot همچنین بصورت خودکار certificate هارو تمدید میکنه. فقط مطئن بشید که پورت های 80 و 443 باز هستن.
تنظیم دامنه در nginx
برای تنظیم دامنه در nginx میتونین از آموزش راه اندازی نصب و تنظیم dns سرور در لینوکس یا اتصال دامنه به CDN کلودفلر استفاده کنید.