انجیناکس؛ شب ۴: contextها، Include و ماژولها
فهرست نوشته
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 ، پارامترهای خط فرمان .