কোন বিপরীত প্রক্সিগুলি HTTP / 1.1 ETag এবং যদি-কিছুই না-ম্যাচ শিরোনাম সমর্থন করে?


8

আমি একটি ইকমার্স প্ল্যাটফর্মের জন্য একটি ক্যাচিং সিস্টেম বিকাশ করছি যা ক্যাচিংয়ের জন্য একটি বিপরীত প্রক্সি ব্যবহার করবে। আমি সঠিক HTTP / 1.1 শিরোনাম ব্যবহার করে অবৈধতা পরিচালনা করার পরিকল্পনা করি। এটি হ'ল, আমি প্রথম প্রজন্মের লিখিত সামগ্রীতে একটি ETag সেট করব এবং অ্যাপ্লিকেশনে ETag এর মানকে ক্যাশে করব। ক্যাশে-নিয়ন্ত্রণ শিরোনামটি "অবশ্যই পুনঃনির্মাণ" নির্দিষ্ট করবে যাতে প্রক্সিটি ETag এর সাথে পরবর্তী অনুরোধগুলিতে যদি না-না-ম্যাচ শিরোনাম সেট করে। অ্যাপ্লিকেশনটি ক্যাশেড ইটাগ মানটি অনুসন্ধান করবে এবং যদি এটি মেলে তবে এটি একটি 304 প্রতিক্রিয়া প্রেরণ করবে, অন্যথায় এটি পুরো 200 প্রতিক্রিয়া উত্পন্ন করবে।

আমি এনজিনেক্সটি ব্যবহার করার আশাবাদী তবে আমি এটি নিশ্চিত করে বলতে পারি না যে এটি ইটাগগুলি সমর্থন করে (ডক্স সূচিত করে যে এটি দেয় না তবে সম্ভবত তারা পুরানো হয়ে গেছে?) বার্নিশ অন্য বিকল্প তবে আমি এখানেও ইতিবাচক নই ..

কোন বিপরীত প্রক্সি সার্ভারের ETags এর জন্য সম্পূর্ণ সমর্থন আছে? আমি আসলে এটি একাধিক সংস্করণে ক্যাশে করা চাই যাতে ক্যাশে অক্ষম না করে বিভক্ত পরীক্ষার মতো জিনিসগুলি করতে পারি। এটি, এইচটিটিপি / ১.১ নির্দিষ্ট করে যে কোনও ক্লায়েন্ট যদি একাধিক ইটাগ মানগুলির সাথে ইফ-নন-ম্যাচ প্রেরণ করতে পারে এবং সার্ভারের সাথে ইটিগের সাথে কোন মিলছে (যদি থাকে)) যদি বিপরীত প্রক্সিটি কেবল সর্বশেষ দেখা মানটির চেয়ে একাধিক অনুলিপি রাখে এবং সার্ভারটি প্রতিটি অনুরোধে নির্দিষ্ট করে দেয় যা ব্যবহার করা উচিত, এটি আদর্শ।

উত্তর:


2

আমি শুধু বার্নিশ সোর্স কোডে চেক করা এবং যদিও এটা সমর্থন If-Modified-Sinceএবং If-None-Matchহেডার, এটা সমর্থন করে না must-revalidateযে Cache-Control। শুধুমাত্র সমর্থিত গুণের Cache-Controlহয় max-ageএবং s-max-age

তথ্যসূত্র:

  • bin/varnishd/cache/cache_rfc2616.cমধ্যে RFC2616_Do_Cond ()
  • bin/varnishd/cache/cache_rfc2616.cমধ্যে RFC2616_Ttl ()
  • include/tbl/http_headers.h

ধন্যবাদ। আমি বার্নিশ ভিসিএল সম্পর্কে খুব বেশি কিছু জানি না, তবে কি বার্নিশ পুনরায় বৈধকরণকে সমর্থন করে বলে মনে হচ্ছে না কি সর্বদা পুনর্নির্মাণের জন্য ভিসিএল ব্যবহার করে নির্দিষ্ট করা সম্ভব?
কলিনম

সবেমাত্র বার্নিশের "পরীক্ষামূলক-ইমগুলি" শাখাটি পাওয়া গেছে বলে মনে হয় যদি এটি কোনও নয়-ম্যাচের জন্য সম্পূর্ণ সমর্থন যোগ করে। আশা করি এটি শেষ পর্যন্ত একটি স্থিতিশীল মুক্তির সাথে একীভূত হবে। বার্নিশ-cache.org/trac/wiki/
ব্যাকএন্ডকন্ডিশনাল

2

এনগিনেক্সের ইটাগ সমর্থন করার জন্য তৃতীয় পক্ষের মডিউল প্রয়োজন। এবং তাদের মধ্যে দুটি আছে ।


স্ট্যাটিক ইটাগ্স মডিউলটি ইটাগগুলি তৈরি করার জন্য, ইটাগের সাথে সামগ্রী ক্যাশে করার জন্য নয়। একইভাবে, ডায়নামিক ইটাগ্স মডিউল প্রবাহের ব্যবহারের বিপরীতে নয়, প্রবাহের ব্যবহারের জন্য গতিশীল সামগ্রীর জন্য ইটাগগুলি উত্পন্ন করে। তবে আমি মনে করি এনগিনেক্স ১.৩ বিপরীত প্রক্সি সহ ইটাগের জন্য সরকারী সমর্থন যুক্ত করেছে ..
কলিনম

1
কেবলমাত্র ভবিষ্যতের রেফারেন্সের জন্য, এনগিনেক্স ইট্যাগ এবং ইফ-নন-ম্যাচকে 1.7.3 সমর্থন করে তবে এটি প্রদত্ত ইউআরএলটির জন্য কেবলমাত্র একটি ফলাফলকে ক্যাশে করতে পারে তাই আমি এই সম্পূর্ণ সমর্থনটি কল করব না। এটি হ'ল, পুনর্বিবেচনার সময় আপনি একাধিক প্রতিক্রিয়া ক্যাশে এবং সার্ভারের সাথে আলাপ-আলোচনা করতে পারবেন না। দেখুন trac.nginx.org/nginx/ticket/101
ColinM

1

আমি ভুল হলে আমাকে সংশোধন করুন এবং আমি জানি এটি একটি পুরানো পোস্ট - তবে আমি নতুন যাত্রীদের জন্য মন্তব্য করতে চাই। আমি বিশ্বাস করি একটি বিপরীত প্রক্সি ক্যাশ ইটি্যাগগুলি ব্যবহার করার সময় আপনার পছন্দ মতো ততটা সহায়তা করে না।

বৈধতা ক্যাচিং পদ্ধতিগুলি অনুরোধের ইটাগ (বা শেষ-সংশোধিত তারিখ) এখনও বৈধ (কোন শিরোলেখ ব্যবহৃত হয়, বা তার পরিবর্তিত হয়নি / তার উপর নির্ভর করে সংস্থানগুলি ইটাগের সাথে মেলে না বা মিলছে না) যাচাই করার জন্য মূল সার্ভারটি ব্যবহার করে অনুরোধে প্রদত্ত তারিখ থেকে)।

এর অর্থ বার্নিশের মতো একটি বিপরীত প্রক্সি ক্যাশে এখনও সেই অনুরোধটি মূল সার্ভারের মাধ্যমে প্রেরণ করবে। এটি সার্ভারটি হ্যান্ডেল করার পরিবর্তে অনুরোধের সাথে সাড়া দিতে পারে তবে আপনি মূল সার্ভারে রাউন্ড ট্রিপ সংরক্ষণ করেননি।

ব্রাউজারগুলি যে কোনও ক্ষেত্রে প্রতিক্রিয়াগুলি ক্যাশে করতে পারে এবং কোনও 304 প্রতিক্রিয়া হ্যান্ডেল করতে পারে, তাই ব্যবহারকারীর ব্যক্তিগত ক্যাশে একটি বিপরীত প্রক্সি ব্যবহার করার চেয়ে এটি হ্যান্ডেল করার জন্য আরও উপযুক্ত হতে পারে (বিশেষত স্কেল এ, ওয়াইএমএমভি) এবং আপনার ব্যবহারের ক্ষেত্রে অবশ্যই নির্ভর করে I আপনার অ্যাপ্লিকেশন সম্পর্কে অনুমান করতে চান)।

অনুমান 13.3 থেকে :

যখন কোনও ক্যাশে কোনও বাসি প্রবেশ করে যা এটি কোনও ক্লায়েন্টের অনুরোধের প্রতিক্রিয়া হিসাবে ব্যবহার করতে চায়, এটি প্রথমে অরিজিন সার্ভারের সাথে পরীক্ষা করতে হবে (অথবা একটি নতুন প্রতিক্রিয়া সহ একটি মধ্যবর্তী ক্যাশে) এটির ক্যাশেড প্রবেশটি এখনও ব্যবহারযোগ্য কিনা তা দেখতে । আমরা এটিকে "বৈধকরণ" ক্যাশে এন্ট্রি বলি। যেহেতু ক্যাশে প্রবেশটি ভাল হলে আমাদের সম্পূর্ণ প্রতিক্রিয়া প্রত্যাহারের ওভারহেড দিতে হবে না, এবং ক্যাশেড এন্ট্রি অবৈধ হলে আমরা অতিরিক্ত রাউন্ড ট্রিপের ওভারহেড দিতে চাই না, এইচটিটিপি / ১.১ প্রোটোকল সমর্থন করে শর্তাধীন পদ্ধতি ব্যবহার।

এবং তারপরে 13.3.4 নোট করুন :

একটি এইচটিটিপি / ১.১ ক্যাচিং প্রক্সি, শর্তযুক্ত অনুরোধ গ্রহণের পরে যা শেষ-পরিবর্তিত তারিখ এবং ক্যাশে ভ্যালিডেটর হিসাবে এক বা একাধিক সত্তা ট্যাগ উভয়কে অন্তর্ভুক্ত করে, যদি ক্যাশেড প্রতিক্রিয়া সমস্তটির সাথে সামঞ্জস্য না হয় তবে স্থানীয়ভাবে স্থানীয়ভাবে ক্যাশেড প্রতিক্রিয়া ফিরিয়ে আনতে হবে না অনুরোধে শর্তাধীন শিরোনাম ক্ষেত্র।

সুতরাং, বার্নিশ আপনার জন্য প্রতিক্রিয়া ফিরিয়ে দিতে পারে, তবে আপনার এখনও সার্ভারে রাউন্ড ট্রিপ রয়েছে। আপনি যদি এপিসি বা মেমক্যাচের মতো অ্যাপ-ক্যাশে ব্যবহার করতে পারেন তবে এটি এখনও আপনার পক্ষে উপযুক্ত। তবে, সার্ভার-রিসোর্স সাশ্রয়ের চেয়ে ব্যান্ডউইথ সঞ্চয় করার জন্য বৈধতা ক্যাচিং সাধারণত ভাল generally

বৈধতা ক্যাশিং সেরা ক্লায়েন্ট (ব্রাউজার বা এপিআই কোড) এ ছেড়ে যেতে পারে।

ক্যাচিংয়ের জন্য মেয়াদোত্তীকরণের মডেলটি ব্যবহার করা হল যেখানে বিপরীত প্রক্সি ক্যাশে সত্যিই জ্বলে। এটি আপনাকে সম্পূর্ণরূপে মূল সার্ভারটি হিট করা এড়াতে দেয়। ব্যবহার Expires, Cache-Control, Date, ইত্যাদি, সেরা (আবার, আইএমও) ক্যাশে প্রতিক্রিয়া আসতে পারেন যেমন একটি বিপরীত প্রক্সি ক্যাশের প্রক্রিয়া, তার মামুলি না অভিমানী কি কখনো উৎপত্তি সার্ভার আঘাত ছাড়া হয়।


এই প্রশ্নের জন্য আমি যে ব্যবহারের বিষয়টি মনে রেখেছিলাম তা হ'ল মূল সার্ভারের সাথে প্রক্সিটি পুনরায়করণ করা এবং যদি ETag ETag এর সাথে মেলে যা একটি প্রদত্ত রেকর্ডের জন্য ক্যাশে হবে 30 এটি হ'ল, ইটাগটি এলোমেলোভাবে তৈরি করা হবে যখন পৃষ্ঠাটি প্রথম রেন্ডার করা হয় এবং সেই রেকর্ডের জন্য প্রাথমিক কী দিয়ে সংরক্ষণ করা হয়। রেকর্ডটি পরিবর্তিত হলে ইটাগ মুছে ফেলা হয়।
কলিনম

1

ইটাগ সহায়তার বিশদগুলিতে ডক্সগুলি খুব বিচ্ছিন্ন তবে ট্র্যাফিক সার্ভারের উল্লেখ করার জন্য ধন্যবাদ!
কলিনম

0

আজ অবধি আমি বিশ্বাস করি এখনও এমন কোনও প্রক্সি নেই যা এই এইচটিটিপিকে পুরোপুরি সমর্থন করে। সুতরাং, প্রায় এক বছর আগে আমি নোড.জেএস এবং মঙ্গোডিবি ব্যবহার করে নিজের লেখার সিদ্ধান্ত নিয়েছি।

https://github.com/colinmollenhour/node-caching-proxy

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.