directive درست در context اشتباه قابل استفاده نیست. امشب ساختار config را می‌خوانیم تا تنظیم HTTP، stream و بارگذاری ماژول با هم مخلوط نشوند.

این جلسه بخشی از دورهٔ انجین‌اکس در ۵۰ شب است. قرارداد آزمایشگاه، مسیرها و روال اعمال تغییر در راهنمای دوره آمده است.

محیط: Nginx نصب‌شده؛ فایل اصلی و config پیش‌فرض را backup گرفته‌ای.

نقشهٔ پیکربندی#

worker_processes auto;
events {
    worker_connections 1024;
}
http {
    include /etc/nginx/mime.types;
    include /etc/nginx/conf.d/*.conf;
}

این نقشهٔ مفهومی است، جایگزین کامل فایل توزیع نیست. main بیرون از بلوک‌ها، http تنظیم وب، server سایت و location مسیر درخواست را نگه می‌دارند. events مدل اتصال کارگر را تنظیم می‌کند. stream برای TCP/UDP در main، هم‌سطح http قرار خواهد گرفت.

sudo nginx -T
nginx -V

-T نحو و فایل‌های خوانده‌شده را نمایش می‌دهد؛ خروجی ممکن است شامل credential داخل config باشد و پیش از اشتراک باید پاک‌سازی شود. -V نسخه، کتابخانه‌ها و گزینه‌های build را نشان می‌دهد؛ وجود ماژول dynamic در build، بارگذاری آن را ثابت نمی‌کند.

یک منبع برای هر تنظیم#

فایل HTTP_LAB راهنما زیر conf.d داخل http خوانده می‌شود؛ map، upstream و zoneهای HTTP می‌توانند آنجا باشند. load_module باید در main باشد، پیش از استفادهٔ قابلیت. Debian معمولاً modules-enabled و RHEL مسیر فایل‌های ماژول مخصوص بسته را include می‌کنند؛ یک ماژول را دوبار بارگذاری نکن.

آزمایش: در Clone یک directive نوع http را داخل events بگذار؛ nginx -t باید شکست بخورد. فایل سالم را برگردان و فقط بعد از test موفق reload کن. filename با پسوند .bak نباید همچنان با الگوی Include تطبیق داشته باشد.

بازگشت: نسخهٔ سالم nginx.conf و فایل‌های Include را بازیابی و روال راهنما را اجرا کن. syntax test موفق، هنوز پاسخ درست سایت را تضمین نمی‌کند.

منبع: ساختار و کنترل Nginx ، پارامترهای خط فرمان .