نصب Nginx بر روی VPS برای وردپرس

چرا Nginx برای وردپرس روی VPS انتخابی هوشمندانه است؟

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

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

پیش‌نیازها برای نصب Nginx بر روی Ubuntu VPS

قبل از شروع، اطمینان حاصل کنید که موارد زیر را در اختیار دارید:

  • یک سرور مجازی (VPS) با سیستم‌عامل Ubuntu (نسخه‌های LTS توصیه می‌شود).
  • دسترسی SSH به سرور با دسترسی‌های ریشه (root) یا یک کاربر با امتیازات sudo.
  • آشنایی اولیه با محیط خط فرمان لینوکس.

مراحل گام به گام نصب Nginx برای وردپرس روی اوبونتو

گام 1: اتصال به سرور از طریق SSH

ابتدا، با استفاده از یک کلاینت SSH (مانند PuTTY برای ویندوز یا Terminal برای لینوکس/مک) به سرور مجازی خود متصل شوید:

ssh username@your_vps_ip_address

پس از ورود به سیستم، دستورات زیر را برای به‌روزرسانی بسته‌های موجود در سرور اجرا کنید تا از آخرین نسخه‌ها بهره‌مند شوید:

sudo apt update sudo apt upgrade -y

گام 2: نصب Nginx

برای اطمینان از نصب آخرین نسخه Nginx، توصیه می‌شود از مخزن PPA Ondřej Surý استفاده کنید. این مخزن بسته‌های به‌روزتری را نسبت به مخازن پیش‌فرض اوبونتو ارائه می‌دهد:

sudo apt install -y software-properties-common sudo add-apt-repository ppa:ondrej/nginx-mainline -y sudo apt update

اکنون می‌توانید Nginx را نصب کنید:

sudo apt install -y nginx

پس از نصب، وضعیت Nginx را بررسی کنید تا مطمئن شوید در حال اجراست:

sudo systemctl status nginx

گام 3: پیکربندی مقدماتی Nginx برای عملکرد بهینه

برای بهبود عملکرد Nginx، فایل پیکربندی اصلی آن را ویرایش کنید:

sudo nano /etc/nginx/nginx.conf

در این فایل، به دنبال خطوط زیر بگردید و آن‌ها را متناسب با منابع سرور خود تنظیم کنید:

  • worker_processes: این مقدار را به تعداد هسته‌های CPU سرور خود تنظیم کنید. برای مثال، اگر سرور شما 2 هسته دارد، آن را به 2 تغییر دهید.
  • worker_connections: این مقدار را متناسب با محدودیت فایل‌های باز (file descriptors) سیستم تنظیم کنید. با دستور ulimit -n می‌توانید این محدودیت را مشاهده کنید و worker_connections را به مقدار معقولی (مثلاً 1024 یا 2048) تنظیم کنید.
  • برای افزایش امنیت، خط server_tokens off; را در بخش http { ... } اضافه کنید تا اطلاعات نسخه Nginx نمایش داده نشود.

فایل باید چیزی شبیه به این باشد (مثال):

user www-data; # یا کاربر ubuntu، بسته به تنظیمات سیستم شما
worker_processes auto; # یا تعداد هسته های CPU شما
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 2048; # بر اساس ulimit -n و نیاز شما
}

http {
    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    types_hash_max_size 2048;
    server_tokens off; # برای امنیت
    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Gzip Settings
    ##

    gzip on;

    # ... بقیه تنظیمات
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

پس از اعمال تغییرات، فایل را ذخیره کرده و از ویرایشگر خارج شوید (Ctrl+X, Y, Enter در nano). سپس Nginx را ریستارت کنید:

sudo systemctl restart nginx

گام 4: نصب MariaDB (پایگاه داده)

وردپرس به یک پایگاه داده نیاز دارد. MariaDB یک جایگزین عالی و متن‌باز برای MySQL است:

sudo apt install -y mariadb-server mariadb-client

پس از نصب، MariaDB را امن‌سازی کنید:

sudo mysql_secure_installation

در این مرحله، سوالاتی برای تنظیم رمز عبور ریشه، حذف کاربران ناشناس، غیرفعال کردن ورود از راه دور ریشه و حذف پایگاه داده تستی پرسیده می‌شود. برای امنیت بیشتر، به تمامی سوالات با “Y” پاسخ دهید.

یک پایگاه داده و کاربر جدید برای وردپرس ایجاد کنید:

sudo mysql -u root -p

رمز عبور ریشه MariaDB را وارد کنید. سپس دستورات زیر را اجرا کنید (your_database_name، your_username، و your_password را با مقادیر دلخواه خود جایگزین کنید):

CREATE DATABASE your_database_name;
CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;
EXIT;

گام 5: نصب PHP و ماژول‌های مورد نیاز

وردپرس با PHP کار می‌کند. برای Nginx، نیاز به PHP-FPM (FastCGI Process Manager) داریم. همچنین ماژول‌های ضروری برای وردپرس را نصب می‌کنیم:

sudo apt install -y php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip php-json

پس از نصب، وضعیت PHP-FPM را بررسی کنید:

sudo systemctl status php-fpm

گام 6: پیکربندی Nginx برای وردپرس

اکنون باید یک بلوک سرور (Server Block) برای دامنه وردپرس خود در Nginx ایجاد کنید. این فایل تعیین می‌کند که Nginx چگونه درخواست‌ها را برای دامنه شما مدیریت کند.

ابتدا، یک دایرکتوری برای فایل‌های وردپرس خود ایجاد کنید (your_domain.com را با دامنه واقعی خود جایگزین کنید):

sudo mkdir -p /var/www/html/your_domain.com sudo chown -R www-data:www-data /var/www/html/your_domain.com

سپس یک فایل پیکربندی جدید برای دامنه خود ایجاد کنید:

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

محتوای زیر را در آن قرار دهید (your_domain.com را با دامنه واقعی خود جایگزین کنید و مسیر PHP-FPM را بررسی کنید):

server {
    listen 80;
    server_name your_domain.com www.your_domain.com;
    root /var/www/html/your_domain.com;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # این مسیر را بر اساس نسخه PHP خود تنظیم کنید
    }

    # برای جلوگیری از دسترسی مستقیم به فایل‌های وردپرس
    location ~ /\.ht {
        deny all;
    }

    # کش مرورگر برای فایل‌های استاتیک
    location ~* \.(jpg|jpeg|gif|png|webp|svg|ico|css|js)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }
}

فایل را ذخیره کرده و خارج شوید. سپس این بلوک سرور را فعال کنید با ایجاد یک لینک سمبولیک:

sudo ln -s /etc/nginx/sites-available/your_domain.com /etc/nginx/sites-enabled/

فایل پیکربندی پیش‌فرض Nginx را غیرفعال کنید (اختیاری اما توصیه می‌شود):

sudo unlink /etc/nginx/sites-enabled/default

پیکربندی Nginx را برای هرگونه خطا بررسی کنید:

sudo nginx -t

اگر “syntax is ok” و “test is successful” را مشاهده کردید، Nginx را ریستارت کنید:

sudo systemctl restart nginx

گام 7: نصب وردپرس

اکنون می‌توانید فایل‌های وردپرس را در دایرکتوری /var/www/html/your_domain.com دانلود و استخراج کنید:

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
sudo mv wordpress/* /var/www/html/your_domain.com/

مجوزهای فایل‌ها و پوشه‌ها را تنظیم کنید:

sudo chown -R www-data:www-data /var/www/html/your_domain.com
sudo find /var/www/html/your_domain.com -type d -exec chmod 755 {} \;
sudo find /var/www/html/your_domain.com -type f -exec chmod 644 {} \;

حالا می‌توانید دامنه خود را در مرورگر باز کنید (http://your_domain.com) و مراحل نصب وردپرس را از طریق رابط کاربری گرافیکی تکمیل کنید. اطلاعات پایگاه داده‌ای که در گام 4 ایجاد کردید را وارد کنید.

نصب Nginx روی ویندوز سرور (برای تست و توسعه)

اگرچه Nginx بر روی ویندوز سرور برای محیط‌های تولید (production) توصیه نمی‌شود و سرورهای لینوکس پایداری و عملکرد بالاتری دارند، اما برای اهداف تست و توسعه قابل استفاده است. مراحل کلی شامل دانلود فایل فشرده Nginx از وب‌سایت رسمی، استخراج آن و اجرای فایل nginx.exe است. سپس می‌توانید از طریق مرورگر با آدرس http://localhost وضعیت نصب را بررسی کنید.

بهینه‌سازی و امنیت بیشتر

  • کشینگ (Caching): برای افزایش بیشتر سرعت، از افزونه‌های کش وردپرس مانند WP Super Cache یا LiteSpeed Cache (اگر LiteSpeed نصب کرده‌اید) استفاده کنید. همچنین می‌توانید کش Nginx را برای فایل‌های استاتیک در پیکربندی خود فعال کنید.
  • HTTPS/SSL: برای امنیت و بهبود سئو، حتماً از گواهی SSL (مانند Let’s Encrypt رایگان) استفاده کنید. این کار ترافیک بین کاربر و سرور را رمزگذاری می‌کند.
  • فایروال: یک فایروال (مانند UFW) را برای محدود کردن دسترسی‌ها به پورت‌های ضروری نصب و پیکربندی کنید.
  • پایش سرور: از ابزارهای پایش برای نظارت بر عملکرد سرور و Nginx استفاده کنید تا مشکلات احتمالی را به سرعت شناسایی و رفع کنید.

نتیجه‌گیری

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

دیدگاه

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

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