انجیناکس؛ شب ۳: نصب Nginx روی AlmaLinux و Rocky Linux
فهرست نوشته
در خانوادهٔ RHEL، مسیر سایت و کاربر سرویس با Debian فرق دارد. امشب Nginx را با SELinux فعال نصب میکنیم و فرضهای شاخهٔ خودمان را ثبت میکنیم.
این جلسه بخشی از دورهٔ انجیناکس در ۵۰ شب است. قرارداد آزمایشگاه، مسیرها و روال اعمال تغییر در راهنمای دوره آمده است.
محیط: AlmaLinux 9 یا Rocky Linux 9 بهروز، VM تمیز، AppStream و کنسول مستقل.
بسته و layout واقعی#
sudo dnf module list nginx
sudo dnf install nginx curl openssl httpd-tools python3 \
policycoreutils-python-utils
sudo systemctl enable --now nginx
sudo nginx -t
nginx -v
rpm -q nginx
getenforce
curl -i http://127.0.0.1/
فهرست stream را برای شناخت انتخاب فعلی ببین؛ روی سرویس موجود module reset اجرا نکن. این درس به قابلیت پایهٔ HTTP تکیه دارد و stream جدیدتر را الزامی نمیکند. نسخهٔ نصبشده مبنای نحو HTTP/2 و سازگاری ماژول بعدی است.
فایل اصلی /etc/nginx/nginx.conf است و conf.d/*.conf معمولاً داخل context نوع http خوانده میشود. ممکن است سایت پیشفرض مستقیماً در nginx.conf تعریف شده باشد؛ قبل از ساخت default_server جدید، بلوک قبلی را با backup غیرفعال کن. حساب کارگر معمولاً nginx است.
شبکه و SELinux#
sudo ss -lntp
sudo firewall-cmd --get-active-zones
sudo journalctl -u nginx -n 30 --no-pager
ls -Zd /usr/share/nginx/html
فرمان firewalld در صورت فعال بودن همان مدیر کاربرد دارد. policy پایهٔ شبکهٔ راهنما فقط کلاینتهای lab را مجاز میکند؛ با مجوز عمومی http/https، allowlist جدید میتواند بیاثر شود.
SELinux کنترل دسترسی اجباری بر اساس policy است. آن را برای رفع 403 خاموش نکن؛ برچسب فایل در شب هشتم و مجوز اتصال پراکسی در شب بیستودوم بررسی میشود.
آزمون و بازگشت: از .20 به .30 پاسخ HTTP بگیر و listener، firewall و label را جدا ثبت کن. برای توقف آزمایش sudo systemctl disable --now nginx کافی است؛ بازگشت کامل با Snapshot انجام میشود.
منبع: Nginx در RHEL 9 .