نصب و کانفیگ وب‌سرور nginx

Calendar

انتشار:

1404/08/09
Update Calendar

به روز رسانی:

1404/08/09

در این مقاله قصد داریم یاد بگیریم چطور وب‌سرور Nginx را روی VPS لینوکسی ایران‌سرور نصب و پیکربندی کنیم تا بتوانیم سایت‌ها و اپلیکیشن‌های خود را با سرعت بالا و مصرف منابع کم اجرا کنیم.

مرحله اول: آماده‌سازی محیط سرور

بعد از اتصال به سرور از طریق SSH، باید مطمئن شوید که دسترسی کافی برای اجرای دستورات سیستمی دارید. اگر به‌عنوان کاربر root وارد نشده‌اید، در تمام دستورات از پیشوند sudo استفاده کنید. همچنین پیشنهاد می‌شود قبل از شروع نصب، وضعیت پکیج‌منیجر و اتصال اینترنت را بررسی کنید تا در مراحل نصب با خطا مواجه نشوید.

مرحله دوم: به‌روزرسانی پکیج‌های سیستم

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

در سیستم‌های Ubuntu / Debian از دستور زیر استفاده کنید:

sudo apt update && sudo apt upgrade -y

و در توزیع‌های CentOS، AlmaLinux یا Rocky Linux دستور زیر را اجرا کنید:

sudo yum update -y

نمای ترمینال هنگام اجرای update

مرحله سوم: نصب وب‌سرور Nginx

اکنون می‌توانیم وب‌سرور Nginx را نصب کنیم. در توزیع‌های Debian و Ubuntu از دستور زیر استفاده کنید:

sudo apt install nginx -y

در CentOS / AlmaLinux نیز بنویسید:

sudo yum install nginx -y

بعد از نصب، سرویس را فعال و اجرا کنید تا به‌صورت خودکار پس از هر ریبوت نیز اجرا شود:

sudo systemctl enable nginx
sudo systemctl start nginx

در نهایت، برای اطمینان از فعال بودن و اجرای صحیح سرویس، وضعیت آن را بررسی کنید:

sudo systemctl status nginx

وضعیت فعال بودن Nginx در systemctl

مرحله چهارم: تنظیم فایروال برای دسترسی وب

برای اینکه کاربران بتوانند سایت شما را ببینند، باید پورت‌های 80 و 443 را در فایروال باز کنید.

در Ubuntu (UFW) از دستور زیر استفاده کنید:

sudo ufw allow 'Nginx Full'
sudo ufw reload

و در CentOS / AlmaLinux (firewalld) از این دستور بهره ببرید:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

نمای فایروال باز شده برای nginx

مرحله پنجم: بررسی عملکرد وب‌سرور

مرورگر خود را باز کنید و آدرس IP سرور را وارد کنید. اگر نصب درست انجام شده باشد، صفحه پیش‌فرض Welcome to Nginx نمایش داده می‌شود. در غیر این صورت، وضعیت فایروال یا سرویس را دوباره بررسی کنید.

صفحه پیش‌فرض nginx در مرورگر

مرحله ششم: آشنایی با مسیرهای تنظیمات

در Ubuntu / Debian فایل اصلی تنظیمات در مسیر /etc/nginx/nginx.conf قرار دارد و سایت‌ها از طریق مسیرهای زیر مدیریت می‌شوند:

  • سایت‌های آماده: /etc/nginx/sites-available/
  • سایت‌های فعال: /etc/nginx/sites-enabled/

در CentOS / AlmaLinux تنظیمات هر سایت معمولاً در مسیر /etc/nginx/conf.d/ قرار دارد. برای ویرایش فایل تنظیمات اصلی از ویرایشگر nano استفاده کنید:

sudo nano /etc/nginx/nginx.conf

نمای فایل nginx.conf در ویرایشگر nano

مرحله هفتم: ایجاد وب‌سایت تست

برای اطمینان از عملکرد درست وب‌سرور، یک صفحه HTML ساده بسازید. در Ubuntu / Debian مسیر /var/www/html و در CentOS / AlmaLinux مسیر /usr/share/nginx/html است.

sudo nano /var/www/html/index.html

محتوا:

<h1>وب‌سرور Nginx با موفقیت نصب شد - ایران‌سرور</h1>

صفحه تست در مرورگر

مرحله هشتم: بررسی و ری‌لود Nginx پس از تغییرات

هر زمان که تنظیمات را تغییر می‌دهید، ابتدا باید سینتکس را بررسی و سپس سرویس را ری‌لود کنید.

sudo nginx -t
sudo systemctl reload nginx

اگر پیام syntax is ok نمایش داده شد، یعنی تنظیمات صحیح است و Nginx با موفقیت ری‌لود شده است.

نتیجه nginx -t در ترمینال

مرحله نهم: تعریف دامنه اختصاصی

برای افزودن سایت جدید یا دامنه جداگانه، یک server block ایجاد کنید. در Ubuntu / Debian مسیر زیر را باز کنید:

sudo nano /etc/nginx/sites-available/example.com

درون این فایل می‌توانید تنظیمات اولیه را مانند نمونه زیر قرار دهید:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html;
}

اتصال به دامنه یک

سپس فایل را فعال کرده و سرویس را ری‌لود کنید:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

در پایان، وب‌سرور Nginx با موفقیت روی VPS لینوکسی شما نصب و تنظیم شده است. اکنون می‌توانید وب‌سایت‌ها، اپلیکیشن‌های PHP یا پروژه‌های خود را با کارایی و امنیت بالا میزبانی کنید.

آیا توانستیم چالش شما را حل کنیم؟