با عرض سلام خدمت دوستان عزیز .جا داره از همه دوستان پوزش طلب کنم به خاطر غیبت کبری که داشتم .
خب امروز میخوام برم سر وقت دستورات کانفیگ اولیه nginx
تو این قسمت قرار بود دستورات و بلاک ها و ... رو به شما دوستان آموزش بدم که بدوم معطلی میریم سر آموزش
دستورات از ماژول های انجینکس می آیند به این معنی که اگر شما یک ماژول را فعال نمایید یک سری از دستورات مربوط به آن به مجموعه دستورات کانفیک وب سرور اضافه خواهد شد .
بلاک events
نمونه کد :
کد:
events
{
worker_connections 1024;
}
توضیحات :
بلاک events که شما در فایل کانفیگ پیش فرض میتوانید ببینید از ماژول events آمده است .برخی از دستورات هستند که فقط در این بلاک کار خواهند کرد . برای مثال دستور worker_connections فقط در بلاک events کار خواهد کرد . در این میان یک استثتاء وجود دارد که برخی از دستورات میتواند در خارج از بلاک ها و در قسمت root کانفیگ ها قرار میگیرد که تاثیر آن بر روی کل سرور خواهد بود .
توجه شود در برخی موارد میتوان از بلاک های تو در تو استفاده نمود . بدین صورت :
کد:
http {
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/example.com.log;
location ^~ /admin/ {
index index.php;
}
}
}
این مثال به شما نشان میدهد که چطور با استفاده از بلاک http یک وب سایت را سرویس دهی کنید ( معرفی به وب سرور و ساخت virtual host )
در داخل بلاک http شما میتوانید یک یا چند بلاک server تعریف نمایید . یلاک سرور به شما اجازه کانفیگ یک virtual host را میدهد . در این مثال بلاک server شامل چند کانفیک میباشد که بر روی تمامی درخواستهایی که برای example.com می آید اعمال میشود .
در داخل بلاک سرور شما میتوانید یک یا چند بلاک location اضافه نمایید . این بلاک به شما اجازه میدهد تا بتوانید تنظیمات و کانفیگ ها را فقط در زمانی که یک uri مشخص درخواست میشود اعمال نمایید . در ادامه مباحث به توضیحات بیشتر در مورد یلاک location در مکانهای مختلف میپردازیم .
اگر ما در ساختار بلاک های تو در تو از داخلی ترین بلاک به بیرونی ترین بلاک شروع به حرکت نماییم . هر بلاک فرزند بلاک بالاتر از خودش به حساب می آید . هر یلاک فرزند میتواند یک سری از دستورات را از بلاک پدرش به ارث ببرد ( در صورتی که خود دارای آن دستور نباشد )
دستور access_log که در بلاک server تعربف شده است مشخص مینماید که تمامی درخواست های HTTP برای این server باید در یک فایل text لاگ شود . این دستور نیز در داخل یلاک فرزند location صدق میکند و همچنین شما قادر هستید که با استفاده مجدد از دستور access_log آن را غیر فعال نمایید :
کد:
[…]
location ^~ /admin/ {
index index.php;
access_log off ;
}
[…]
در این مورد . لاگ گیری در تمامی قسمت های این وب سایت به حز مکان /admin/ فعال میباشد .