راهنمای استفاده از تایمرها در Nginx

nginx timers guide
29 فروردین 1404


سلام دوستا! امروز می‌خواهیم در مورد یکی از قابلیت‌های کاربردی Nginx صحبت کنیم که به ما کمک می‌کنه زمان‌های معین یا تایمرها رو به راحتی مدیریت کنیم. Nginx به عنوان یک وب سرور بسیار محبوب و کارآمد، امکانات خیلی خوبی برای کنترل رفتار درخواست‌ها و پاسخ‌ها به ما میده. یکی از این امکانات، استفاده از تایمرهاست که می‌تونه در بهینه‌سازی عملکرد وب‌سایت‌ها به ما کمک کنه.


تایمرها کمک می‌کنند تا بتونیم زمان خاصی رو برای پاسخ به درخواست‌ها تنظیم کنیم. این کار به ویژه در موقعیت‌هایی که سرور تحت فشار بالا قرار داره یا زمانی که درخواست‌ها باید در زمان مشخصی پاسخ داده بشن، خیلی مفیده. مثلاً می‌تونیم زمان‌هایی که یک کاربر برای گرفتن اطلاعات انتظار می‌کشه رو تعیین کنیم یا برای درخواست‌های طولانی، تایمر مشخص کنیم تا بعد از یک زمان معین، درخواست به حالت Timeout برگرده.


استفاده از تایمرها در Nginx می‌تونه شامل تنظیمات مختلفی باشه. مثلاً می‌تونیم برای فیلتر کردن درخواست‌ها یا خواندن داده‌ها از منابع مختلف تایمر تنظیم کنیم. این کار می‌تونه باعث شده تا سرور بهتر و سریع‌تر پاسخ بده. در این مقاله می‌خوایم چند نمونه کاربردی از قوانین و تنظیمات تایمر در Nginx رو با هم بررسی کنیم و ببینیم چطور می‌تونیم ازشون استفاده کنیم.


پس اگه شما هم علاقمندید که یاد بگیرید چطور تایمرها رو در Nginx تنظیم کنید، با ما همراه باشید. در ادامه به نمونه کدها و توضیحات لازم در این زمینه می‌پردازیم.


کد نمونه تنظیم تایمر در Nginx


server {
listen 80;
server_name example.com;

location / {
# تنظیم تایمر برای timeout
proxy_read_timeout 60;
proxy_connect_timeout 30;
proxy_send_timeout 30;
# پروکسی به سرور دیگر
proxy_pass http://backend;
}
}

توضیحات کد بالا


server {
این خط شروع یک بلاک سرور جدید در Nginx رو مشخص می‌کنه.


listen 80;
این خط به Nginx می‌گه که روی پورت 80 به درخواست‌ها گوش بده.


server_name example.com;
این خط مشخص می‌کنه که این سرور برای دامنه example.com خدمت می‌کنه.


location / {
این خط نشان‌دهنده آدرس محلی است که تنظیمات برای آن نوشته می‌شود.


proxy_read_timeout 60;
این خط تعیین می‌کند که Nginx تا 60 ثانیه برای دریافت پاسخ از سرور پروکسی صبر کند.


proxy_connect_timeout 30;
این خط زمان حداکثری برای اتصال به سرور پروکسی را 30 ثانیه تعیین می‌کند.


proxy_send_timeout 30;
این خط زمان حداکثری برای ارسال درخواست به سرور پروکسی را 30 ثانیه تعیین می‌کند.


proxy_pass http://backend;
این خط مشخص می‌کند که درخواست‌ها به آدرس http://backend ارسال شوند.


}
این خط نشان‌دهنده پایان یک بلاک تنظیمات است.


سوالات متداول

؟

چطوری میتونم تایمر رو در Nginx تنظیم کنم؟

؟

مدت زمان پیش‌فرض تایمر Nginx چقدر هست؟

؟

اگر زمان تایمر به اتمام برسه چه اتفاقی میفته؟