learn

نصب Nginx در AlmaLinux 9؛ سایت آزمایشی، فایروال و کنترل پیکربندی

نصب Nginx در AlmaLinux 9 بدون کنترل‌پنل، ساخت server block و بررسی پاسخ دامنه؛ با حفظ SELinux و کنترل zone واقعی فایروال.

برای نصب Nginx روی AlmaLinux 9، ابتدا منبع بسته را مشخص کنید و آن را با مخزن دیگری مخلوط نکنید. این نمونه از بسته توزیع روی سرور تازه و بدون کنترل‌پنل استفاده می‌کند و یک صفحه استاتیک می‌سازد. روی cPanel یا پشته مدیریت‌شده، نصب دستی وب‌سرور موازی می‌تواند با پورت و تنظیمات پنل تعارض داشته باشد.

نصب و شروع سرویس

sudo dnf info nginx
sudo dnf install nginx
sudo nginx -t
sudo systemctl enable --now nginx
sudo systemctl status nginx --no-pager

اگر پورت 80 اشغال است، سرویس موجود را شناسایی کنید؛ آن را صرفاً برای عبور از خطا متوقف نکنید. با sudo ss -lntp می‌توانید شنونده‌ها را ببینید. نسخه بسته را همراه منبع مخزن در گزارش نگهداری ثبت کنید.

ساخت صفحه و server block نمونه

پوشه /usr/share/nginx/html/demo را برای محتوای نمونه بسازید و index.html ساده در آن قرار دهید. این مسیر و دامنه نمونه‌اند. در /etc/nginx/conf.d/demo.conf، فقط اگر این مسیر در nginx.conf شما Include شده، پیکربندی زیر را بگذارید؛ روی فایل موجود بدون بکاپ ننویسید.

server {
    listen 80;
    server_name demo.example.com;
    root /usr/share/nginx/html/demo;
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
}

این تنظیم فقط فایل استاتیک سرو می‌کند؛ برای اجرای PHP به اتصال صحیح PHP-FPM و قواعد امن پردازش نیاز دارید. با دادن پسوند php به فایل، اجرا به‌طور خودکار فعال نمی‌شود.

کنترل و اعمال تغییر

sudo nginx -t
sudo systemctl reload nginx
curl -I -H "Host: demo.example.com" http://127.0.0.1/

ابتدا index.html واقعاً وجود داشته باشد و فایل‌ها برای کاربر سرویس خواندنی باشند. آزمون Host روی loopback انتخاب server block را می‌سنجد، اما DNS و دسترسی بیرونی را اثبات نمی‌کند.

فایروال و SELinux

zone فعال interface را با firewall-cmd –get-active-zones پیدا کنید و سرویس http را در همان zone ابتدا runtime و سپس permanent مجاز کنید. برای HTTPS پس از آماده‌سازی TLS، https را اضافه کنید. اگر مسیر محتوای سفارشی دارید، context متناسب SELinux را پایدار تنظیم کنید؛ chmod 777 یا خاموش‌کردن SELinux درمان عمومی 403 نیست.

تحویل و عیب‌یابی

  • DNS دامنه نمونه را با مقصد واقعی جایگزین و پاسخ را از بیرون شبکه آزمایش کنید.
  • برای 403، مسیر، index، مجوز عبور پوشه‌ها و لاگ SELinux را بررسی کنید.
  • برای 502 در سایت پویا، upstream و socket برنامه بررسی می‌شود، نه متن HTML.
  • پیش از انتقال ترافیک واقعی، TLS، بکاپ پیکربندی، rotation لاگ و بازگشت نسخه را آماده کنید.

مطالعه مرتبط

منابع و مستندات

بازبینی محتوا و منابع: ۲۶ مهر ۱۴۰۵. دستورهای نمونه برای محیط مشخص‌شده‌اند؛ پیش از استفاده روی سرویس عملیاتی، سازگاری محیط و نسخه پشتیبان را بررسی کنید.

مطالب مرتبط

ارسال نظر

فهرست مطالب