learn

نصب Nginx در CentOS Stream؛ پیکربندی سایت و SELinux

مراحل راه‌اندازی Nginx در خانوادهٔ Enterprise Linux با توجه به مخزن، مسیر و مجوزهای واقعی.

نصب Nginx در CentOS Stream جایگزین بخش قدیمی این مقاله دربارهٔ CentOS 7 است. CentOS Linux 7 از ۳۰ ژوئن ۲۰۲۴ به پایان پشتیبانی رسیده و CentOS Linux 8 هم نسخهٔ جاری محسوب نمی‌شود. نصب EPEL قدیمی روی سرور تازه، روش به‌روز این آموزش نیست.

پیش‌نیاز نصب Nginx در CentOS Stream

سرور مستقل با مخازن رسمی همان نسخه، دسترسی sudo و دامنهٔ آزمایشی لازم است. الگوی زیر با بسته‌های خانوادهٔ Enterprise Linux و مرجع Nginx در RHEL 10 نوشته شده است؛ در CentOS Stream 10 نام بسته، includeها و مسیرهای مؤثر را روی نصب خود کنترل کنید.

انتخاب نسخه را از فهرست رسمی CentOS انجام دهید. این دستورها فرایند مهاجرت CentOS 7 نیستند. همچنین اگر پنل هاست سرویس وب را مدیریت می‌کند، تغییر دستی این فایل‌ها می‌تواند با تنظیمات تولیدشدهٔ پنل تداخل داشته باشد.

نصب از مخزن و شروع سرویس

cat /etc/os-release
dnf info nginx
sudo dnf install nginx
sudo nginx -t
sudo systemctl enable --now nginx
systemctl status nginx --no-pager

اگر بسته یافت نشد، مخزن و نسخهٔ سیستم را بررسی کنید؛ مخزن نسخهٔ دیگر را تصادفی اضافه نکنید. اگر آزمون پیکربندی شکست خورد، پیش از شروع سرویس علت را رفع کنید. اشغال پورت 80 توسط وب‌سرور دیگر نیازمند طراحی مسیر ترافیک است.

محتوا و فایل تنظیم سایت

پوشهٔ /var/www/example.com/public را برای سایت تازه بسازید و یک index.html با متن مشخص داخل آن قرار دهید. سپس بررسی کنید که nginx.conf فایل‌های /etc/nginx/conf.d/*.conf را داخل بخش http می‌خواند. در این الگو فایل /etc/nginx/conf.d/example.com.conf شامل این محتواست:

server {
    listen 80;
    server_name example.com;
    root /var/www/example.com/public;
    index index.html;
    access_log /var/log/nginx/example-access.log;
    error_log /var/log/nginx/example-error.log;
    location / {
        try_files $uri $uri/ =404;
    }
}

example.com را با دامنهٔ خود جایگزین کنید. در این بسته، وجود پوشهٔ sites-enabled مانند Ubuntu را فرض نکنید. فایل مستقل تنها وقتی اثر دارد که پیکربندی اصلی آن را بخواند. نمونهٔ بالا HTML ارائه می‌کند و برای اجرای PHP کافی نیست.

SELinux و خطای 403

مجوز خواندن فایل و پیمایش پوشه‌ها را برای کاربر سرویس فراهم کنید. علاوه بر مجوزهای معمول، زمینهٔ SELinux محتوا باید با سیاست وب سازگار باشد. برای مسیر زیر /var/www، وضعیت فعلی و زمینهٔ تعریف‌شده در سیاست را بررسی کنید:

ls -Zd /var/www/example.com/public
sudo restorecon -Rv /var/www/example.com

مسیر سفارشی خارج از پوشه‌های شناخته‌شده ممکن است تعریف پایدار fcontext لازم داشته باشد. از خاموش‌کردن SELinux یا دادن مجوز 777 برای رفع ظاهری 403 پرهیز کنید. اگر برنامه باید فایل بنویسد، فقط محل و مجوز لازم همان قابلیت را تعیین کنید.

اعمال تنظیم و آزمایش دامنه

sudo nginx -t
sudo systemctl reload nginx

بارگذاری مجدد را پس از آزمون موفق انجام دهید. راهنمای Nginx تفاوت reload و راه‌اندازی دوباره را توضیح می‌دهد. برای دسترسی بیرونی، zone فعال firewalld و قواعد شبکهٔ میزبان را بررسی کنید؛ فرض public برای تمام رابط‌ها درست نیست.

رکورد DNS باید به سرور برسد و مرورگر متن اختصاصی سایت را نشان دهد. دستور ip addr لزوماً IP عمومی پشت NAT را مشخص نمی‌کند. پیش از استفادهٔ عملیاتی، گواهی و تنظیم HTTPS را تکمیل کنید؛ اجازهٔ پورت 443 به معنی فعال‌شدن خودکار TLS نیست.

مطالعهٔ مرتبط

بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شده‌اند.

مطالب مرتبط

ارسال نظر

فهرست مطالب