Nginx প্রক্সি_ ক্যাশে_পথ নির্দেশনা বোঝা


30

ধরুন আমার কাছে এই এনগিনেক্স কনফিগার ফাইল আছে

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=myCache:8m max_size=100m inactive=1h;
  • কী keys_zone=myCache:8mমানে? ডক্সে এটি খুব বেশি কিছু বলা হয়নি:

এছাড়াও, সমস্ত সক্রিয় কী এবং তথ্য সম্পর্কিত তথ্য একটি ভাগ করা মেমরি জোনে সংরক্ষণ করা হয়, যার নাম এবং আকার কী_জোন প্যারামিটার দ্বারা কনফিগার করা হয়েছে।

  • proxy_cache_valid( 12h) যদি নির্দিষ্ট inactiveমান ( 1h) এর চেয়ে বেশি হয় তবে কী হবে proxy_cache_path? এটি কোন নিয়ম অনুসরণ করবে? যেমন

    proxy_cache_valid 200 302 12h;
    proxy_cache_valid 404 302 1h;
    

ধন্যবাদ!

উত্তর:


39

কীগুলি_জোন = মাই ক্যাশে: 8 মি মানে?

ডকুমেন্টেশন হিসাবে বলা হয়েছে , এনজিনেক্স সমস্ত সক্রিয় কী এবং তথ্য সম্পর্কিত তথ্য একটি ভাগ করা মেমরি জোনে সংরক্ষণ করবে , যার nameএবং sizeকী_জোন প্যারামিটার দ্বারা কনফিগার করা আছে। সম্পূর্ণতার বিষয়টি হিসাবে, প্রতি অংশে ভাঙ্গা যাক

  • /var/cache/nginxআসল ক্যাশে সংরক্ষণ করা সেই জায়গা। ফোল্ডারের অভ্যন্তরে, ক্যাশে ফাইলটি বাইনারি ফাইল ছিল তবে আপনি সহজেই এর ভিতরে এইচটিএমএল ট্যাগটি স্পট করতে পারবেন।
  • levels=1:2 স্তর স্তরের প্যারামিটার ক্যাশে সাব-ডিরেক্টরি স্তরগুলির সংখ্যা নির্ধারণ করে।
  • keys_zone=myCache:8mসর্বাধিক আকার 8 এমবি সহ মাই ক্যাশে নামে ভাগ করা মেমরি জোনটি সংজ্ঞায়িত করছিল। এটি ক্যাশে সমস্ত সক্রিয় কী এবং মেটাডেটা ধারণ করে। সুতরাং, যখনই কোনও এনজিঙ্ক্স কোনও পৃষ্ঠা ক্যাশে হয়েছে কিনা তা পরীক্ষা করে, এটি প্রথমে ভাগ করা মেমরি জোনটি নিয়ে পরামর্শ করে, তারপরে /var/cache/nginxক্যাশে উপস্থিত থাকলে প্রকৃত ক্যাশের অবস্থান অনুসন্ধান করুন ।
  • max_sizeক্যাশে সর্বোচ্চ আকার ছিল যেমন ফাইল আকার /var/cache/nginx
  • inactive=1hসর্বাধিক নিষ্ক্রিয় সময় ক্যাশে সংরক্ষণ করা যেতে পারে তা নির্দিষ্ট করুন। inactiveপ্যারামিটার দ্বারা নির্দিষ্ট সময় অ্যাক্সেস না করা ক্যাশেড ডেটা তাদের তাজাতা নির্বিশেষে ক্যাশে থেকে সরানো হবে।

ক্যাশে যাচাইকরণ এবং মোছা কীভাবে কাজ করে

Nginx মেলিং তালিকা থেকে নেওয়া

  • নির্দেশিকা proxy_cache_valid উল্লেখ করে কতক্ষন প্রতিক্রিয়া বৈধ বিবেচনা করা হবে (এবং ব্যাকএন্ড কোনো অনুরোধ ছাড়া ফেরত পাঠানো হবে)। এই সময়ের পরে প্রতিক্রিয়াটিকে "বাসি" হিসাবে বিবেচনা করা হবে এবং হয় তা ফেরানো হবে না বা প্রক্সি_ ক্যাশে_ইজ_স্টেল সেটিংসের উপর নির্ভর করবে ।

  • আর্গুমেন্ট নিষ্ক্রিয় এর proxy_cache_path উল্লেখ করে কতক্ষন প্রতিক্রিয়া গত ব্যবহারের পরে ক্যাশের মধ্যে সংরক্ষণ করা হবে। মনে রাখবেন যে এমনকি বাসি প্রতিক্রিয়াগুলি যদি তাদের কাছে অনুরোধ থাকে তবে সম্প্রতি ব্যবহৃত হিসাবে বিবেচিত হবে।

আমি যেমন বুঝতে পেরেছি, এখানে সিউজোকোড কীভাবে এনগিনেক্স কাজ করে

অনুরোধ যখন আসবে

if cache.exist AND (now() - cache.first_retrieved) < proxy_cache_valid:
    use it
else:
    retrieve from backend
    replace the old ones

অন্যান্য প্রক্রিয়াতে, ক্যাশে পরিচালক এই যুক্তিটি সম্পাদন করেন

if (now() - cache.last_used) > inactive:
    del cache

if all-cache.size > max-size:
    del *the most inactive cache* until size < max-size

প্রক্সি_ক্যাচি_প্যাথে প্রক্সি_ক্যাচি_অডিয়াল (12 ঘন্টা) নির্দিষ্ট নিষ্ক্রিয় মান (1 ঘন্টা) এর চেয়ে বেশি হলে কী হবে?

যতক্ষণ না অনুরোধ এবং নির্দিষ্ট ক্যাশে অ্যাক্সেস করা যায় ততক্ষণ পর্যন্ত সেই ক্যাশে অবজেক্টটি ক্যাশে রাখার পরে 12 ঘন্টা অবধি বৈধ থাকবে। এর পরে, ক্যাশেটি অবৈধ বলে বিবেচিত হয়েছিল, সুতরাং এনজিনেক্স ব্যাকএন্ড থেকে এনে বৈধ টাইমারটি পুনরায় সেট করবে। তবে যদি বস্তুটি এক ঘণ্টারও বেশি সময় নিষ্ক্রিয় থাকে (অ্যাক্সেস না করা হয়) - এমনকি 12 ঘন্টা বৈধ-ক্যাশে-পিরিয়ডেও - তবে এনজিঙ্ক্স প্যারামিটারের কারণে এটি মুছবেinactive


"তারপরে, ক্যাশেটি অবৈধ বলে বিবেচিত হয়েছিল, তাই এনজিনেক্স ব্যাকএন্ড থেকে এনে বৈধ টাইমারটি পুনরায় সেট করবে" " - এটি চমৎকার. সুতরাং nginx অনুরোধটি আটকায় এমনকি কোনও ব্যবহারকারী এটি আনে না কেন? সুতরাং, উদাহরণস্বরূপ, যদি নিষ্ক্রিয় হয় 365dএবং বৈধ হয় 1dতবে এনজিনেক্স এক বছরের জন্য প্রতিটি দিন ক্যাশে অনুরোধগুলি আনবে এমনকি কেউ যদি সেই অনুরোধ না করে?
মার্টিন থোমা

1
উত্তম উত্তর, তবে আমরা পরিমাপের এককগুলিতে কোনও ডকুমেন্টেশন খুঁজে পাই না যা আমরা এই কয়েকটি পরামিতি দিয়ে ব্যবহার করি। উদাহরণস্বরূপ, inactiveপ্যারামগুলি সময় মান লাগে তবে আমি দেখতে পাচ্ছি না আমি অন্যান্য মানগুলি hকীভাবে ব্যবহার করতে পারি (কীভাবে 1 মাস? বা 1 দিন? ইত্যাদি)? এবং আমরা কি দিয়ে উল্লেখ করা উচিত max_size? বাইট? আমি কি 1 মেগাবাইটের জন্য 1 এম ব্যবহার করতে পারি?
সুনীল D.

4
@SunilD। - আপনি এখানে যান: nginx.org/en/docs/syntax.html
adamczi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.