این جی آئی این ایکس کیشے کو حذف کرنے سے غلطی لاگ میں اہم ان لنک غلطیاں پڑ جاتی ہیں
شائع شدہ: 15 فروری، 2025 کو 11:25:08 AM UTC
یہ مضمون وضاحت کرتا ہے کہ آپ کی لاگ فائلوں کو غلطی کے پیغامات سے بھرے بغیر این جی آئی این ایکس کے کیشے سے آئٹمز کو کیسے حذف کیا جائے۔ اگرچہ عام طور پر ایک تجویز کردہ نقطہ نظر نہیں ہے ، لیکن یہ کچھ اہم معاملات میں مفید ہوسکتا ہے۔
Deleting NGINX Cache Puts Critical Unlink Errors in Error Log
اس پوسٹ میں موجود معلومات اوبنٹو سرور 14.04 x64 پر چلنے والے NGINX 1.4.6 پر فاسٹ سی جی آئی کیچنگ پر مبنی ہے۔ یہ دوسرے ورژن کے لئے درست ہوسکتا ہے یا نہیں۔
(اپ ڈیٹ 2025: اصل پوسٹ لکھنے اور اب کے درمیان کے وقت میں، بہت کچھ بدل گیا ہے. سرورز تیز اور سستے ہیں ، لہذا میں درحقیقت اس پوسٹ میں بیان کردہ نقطہ نظر کی سفارش نہیں کروں گا جہاں میں متحرک مواد کی کچھ اضافی نسلوں کو بچانے کے لئے کیشے ایکسپائری کو مائیکرو مینیج کرنے کی کوشش کرتا ہوں۔ میں مواد کو مستقبل کے حوالہ کے لئے یہاں چھوڑ دوں گا اور اگر کسی کو واقعی کسی بھی وجہ سے اس کی ضرورت ہے. میں نے اس بات کی تصدیق نہیں کی ہے کہ یہ اب بھی این جی آئی این ایکس کے موجودہ ورژن کے لئے کام کرتا ہے ، لیکن مجھے لگتا ہے کہ یہ کرتا ہے)۔
اپاچی سے این جی آئی این ایکس میں متعدد سائٹوں کو منتقل کرنے کے بعد مجھے اس کی بلٹ ان کیچنگ صلاحیتوں کا بہت شوق ہوا ہے ، جو زیادہ تر حالات میں میری طرف سے زیادہ مداخلت کے بغیر بہت اچھا کام کرتا ہے۔
تاہم ، سائٹوں میں سے ایک کے لئے ، مجھے واقعی کیشے کو صاف کرنے کی صلاحیت کی ضرورت تھی (دونوں مکمل طور پر اور انفرادی اندراج کو ہٹانا)۔ این جی آئی این ایکس کا مفت کمیونٹی ایڈیشن صرف وقت پر مبنی کیشے کی میعاد ختم ہونے کی حمایت کرتا ہے (یعنی آپ اسے یہ چیک کرنے کے لئے ترتیب دے سکتے ہیں کہ آیا ایک گھنٹے ، ایک دن وغیرہ کے بعد کچھ تبدیل ہوا ہے یا نہیں)۔ لیکن کیا ہوگا اگر وقت سے پہلے اس بات کا تعین کرنے کا کوئی قابل اعتماد طریقہ نہیں ہے کہ ایک مخصوص وسائل کب تبدیل ہوں گے؟ مثال کے طور پر، مجھے نہیں معلوم کہ مجھے واپس آنے اور اس پوسٹ میں کچھ ایڈٹ کرنے میں ایک گھنٹہ، ایک دن یا ایک سال لگے گا - اور اگر ایک دن کے لئے کیچنگ ٹھیک ہوتی تو صرف ایک گھنٹے کے لئے کیش کیوں ہوتا؟
یہ وہ جگہ ہے جہاں دستی طور پر کیشے کو صاف کرنے کی صلاحیت کی ضرورت ہوتی ہے (یا آپ کی ویب ایپلی کیشن کو این جی آئی این ایکس کو مطلع کرکے کہ کچھ صاف کیا جانا چاہئے)۔ این جی آئی این ایکس کے پیچھے موجود لوگ اس کی ضرورت سے واضح طور پر آگاہ ہیں کیونکہ اس خصوصیت کو ان کی مصنوعات کے ادا شدہ ورژن میں سپورٹ کیا گیا ہے - لیکن اگرچہ وہ یقینی طور پر اپنی مرضی سے اپنا لائسنس مرتب کرنے کے حقدار ہیں ، لیکن میرے لئے قیمت تھوڑی زیادہ ہے جب یہ فنکشن واحد ادا شدہ خصوصیت ہے جس کی مجھے واقعی ضرورت ہے۔
خوش قسمتی سے ، یہ پتہ چلتا ہے کہ آپ صرف کیش ڈائریکٹری سے فائلوں کو حذف کرسکتے ہیں اور این جی آئی این ایکس اس پر اٹھ ے گا اور بغیر کسی رکاوٹ کے آپ کے بیک اینڈ سے ایک نئی کاپی حاصل کرے گا۔ تاہم ، اگر آپ اپنی ترتیب کو تبدیل کیے بغیر ایسا کرتے ہیں تو آپ کو تھوڑی دیر کے بعد اپنے ایرر لاگ میں اس طرح کے پیغامات کا ایک پورا گروپ نظر آنے کا امکان ہے:
ایسا لگتا ہے کہ یہ غلطیاں اس وقت ہوتی ہیں جب این جی آئی این ایکس خود fastcgi_cache_path ہدایت کے غیر فعال پیرامیٹر کے ذریعہ متعین کردہ وقت کے بعد کیش اندراج کو حذف کرنے کی کوشش کرتا ہے۔ اس کے لئے ڈیفالٹ صرف 10 منٹ ہے ، لیکن آپ اسے اپنی مرضی کی قیمت پر سیٹ کرسکتے ہیں۔ اگر آپ اسے 10 سال پر سیٹ کرتے ہیں تو ، شاید اس بات کا امکان نہیں ہے کہ آپ نے اس دوران سرور کو دوبارہ شروع نہیں کیا ہے لہذا اس دوران میموری میں کلیدی انڈیکس صاف ہوگیا ہوگا۔ اگر آپ ایسا کرتے ہیں تو ، کیا آپ کو اس بات کو یقینی بنانے کی ضرورت ہے کہ آپ کیشے کو خود صاف کریں ، این جی آئی این ایکس اب آپ کے لئے ایسا نہیں کرے گا۔
مجھے یہ واقعی عجیب لگتا ہے کہ یہ ایک اہم غلطی سمجھا جاتا ہے کہ کیش انٹری کو حذف نہیں کیا جاسکتا ہے کیونکہ یہ موجود نہیں ہے۔ حقیقت یہ ہے کہ اس کی شدت کی درجہ بندی اتنی زیادہ ہے کہ ایک خاص حد سے نیچے لاگ اندراج کو نظر انداز کرکے اس سے چھٹکارا حاصل کرنا ناممکن ہے۔ جیسے ہی بیک اینڈ سے ایک نئی کاپی حاصل کی جائے گی اندراج دوبارہ موجود ہوگا ، لہذا میری رائے میں یہ زیادہ سے زیادہ ایک انتباہ ہونا چاہئے۔
اب ، اگر اجازت کے ساتھ مسائل یا کسی تیسری چیز کی وجہ سے کیش انٹری کو حذف نہیں کیا جاسکتا ہے تو ، یہ ایک اہم غلطی ہوگی ، کیونکہ اس سے این جی آئی این ایکس کو اس کی میعاد ختم ہونے کے بعد بھی کیش شدہ مواد کی خدمت جاری رکھنے پر مجبور کیا جاسکتا ہے ، لیکن صفائی کا عمل یہ فرق نہیں کرتا ہے۔