ক্লাউড সিডিএন আপনার ওয়েব অ্যাপের জন্য App Hosting সাপোর্টের একটি গুরুত্বপূর্ণ অংশ। আপনার ব্যাকএন্ডে প্রতিটি অনুরোধ প্রথমে ক্লাউড সিডিএন এর মাধ্যমে পাঠানো হয়। সিডিএন-এ ইতিমধ্যেই ক্যাশে করা কন্টেন্ট ব্যবহারকারীর কাছে তাৎক্ষণিকভাবে ফেরত পাঠানো হয়, আপনার ওয়েব অ্যাপের সার্ভার কোড চালানো ক্লাউড রান পরিষেবায় ভ্রমণ এড়িয়ে যাওয়া। সিডিএন-এর সাধারণ সুবিধা সম্পর্কে আপনি web.dev ওয়েবসাইটে আরও জানতে পারেন।
যদিও বেসিক ক্লাউড সিডিএন কনফিগারেশন App Hosting দ্বারা সেট করা হয় এবং এটি পরিবর্তন করা যায় না, তবুও পৃষ্ঠা লোডের গতি বাড়াতে, বিল করা আনক্যাশেড কন্টেন্ট কমাতে এবং ক্লাউড রানে ট্র্যাফিক কমাতে আপনার ক্যাশিং অপ্টিমাইজ করার জন্য আপনি বেশ কিছু জিনিস করতে পারেন।
ক্যাশেযোগ্য কন্টেন্ট
নিম্নলিখিত সমস্ত শর্ত সত্য হলে ক্লাউড সিডিএন প্রতিক্রিয়াগুলি ক্যাশে সংরক্ষণ করে:
অনুরোধটি একটি GET
প্রতিক্রিয়াটির একটি স্ট্যাটাস কোড রয়েছে
200,203,204,206,300,301,302,307,308,404,405,410,421,451, অথবা501।প্রতিক্রিয়াটিতে একটি
Cache-Controlহেডার থাকবে যার মধ্যে একটিmax-ageঅথবাs-maxageনির্দেশিকা থাকবে, অথবা একটিExpiresহেডার থাকবে যার মধ্যে ভবিষ্যতে একটি টাইমস্ট্যাম্প থাকবে।প্রতিক্রিয়াটিতে একটি
Ageহেডার অথবা একটিCache-Controlহেডার রয়েছে যার সাথে একটি স্পষ্টpublicনির্দেশিকা রয়েছে।প্রতিক্রিয়াটি আকারে 10 MiB এর কম বা সমান।
এবং নিম্নলিখিতগুলির কোনওটিই সত্য নয়:
প্রতিক্রিয়াটিতে একটি
Set-Cookieহেডার রয়েছেপ্রতিক্রিয়াটিতে একটি
Varyহেডার রয়েছে যার মানAccept,Accept-Encoding,Access-Control-Request-Headers,Access-Control-Request-Method,Origin,Sec-Fetch-Dest,Sec-Fetch-Mode,Sec-Fetch-Site,X-Goog-Allowed-Resources,X-Origin,RSC,Next-Router-State-Tree,Next-Router-Prefetch, অথবাNext-Router-Segment-Prefetchমান রয়েছে।প্রতিক্রিয়াটিতে একটি
Cache-Controlহেডার রয়েছে যার সাথেno-storeঅথবাprivateনির্দেশিকা রয়েছে।অনুরোধটিতে একটি
Cache-Controlহেডার রয়েছে যার একটিno-storeনির্দেশিকা রয়েছে।অনুরোধটিতে একটি
Authorizationশিরোনাম রয়েছে, যদি না প্রতিক্রিয়াটিতে একটি স্পষ্ট ক্যাশে নিয়ন্ত্রণ নির্দেশিকা থাকে।
ক্যাশে নিয়ন্ত্রণ নির্দেশিকা ব্যবহার করে আচরণ কাস্টমাইজ করুন
পরবর্তী.জেএস
Next.js বেশ কয়েকটি বিষয়ের উপর ভিত্তি করে ক্যাশ-কন্ট্রোল নির্দেশিকা সেট করে। তবে, আপনি আপনার next.config.js ফাইলে হেডার ম্যানুয়ালি সেট করে এগুলি ওভাররাইড করতে পারেন। উদাহরণস্বরূপ, ক্লাউড CDN-এ কোনও পৃষ্ঠা ক্যাশে না করা নিশ্চিত করতে:
/** @type {import('next').NextConfig} */
const nextConfig = {
headers: async () => [{
source: "/YOUR_PRIVATE_PAGE",
headers: [{
key: "Cache-Control",
value: "private"
}],
}],
};
কৌণিক
অ্যাঙ্গুলার SSR স্পষ্ট ক্যাশে-নিয়ন্ত্রণ নির্দেশিকা সেট করে না। আপনার সার্ভার রুটে ক্যাশে-নিয়ন্ত্রণ হেডার নির্দিষ্ট করে আপনি নিজেরটি যোগ করতে পারেন। উদাহরণস্বরূপ, ক্লাউড CDN কে এক ঘন্টার জন্য সমস্ত পৃষ্ঠা ক্যাশে করার অনুমতি দেওয়ার জন্য:
import { RenderMode, ServerRoute } from '@angular/ssr';
export const serverRoutes: ServerRoute[] = [
{
path: '**',
renderMode: RenderMode.Prerender,
headers: {
'Cache-Control': 'public, max-age=3600',
}
}
];
অথবা একটি নির্দিষ্ট পৃষ্ঠা ক্যাশে করা হবে না তা নিশ্চিত করতে:
import { RenderMode, ServerRoute } from '@angular/ssr';
export const serverRoutes: ServerRoute[] = [
// ... other routes
{
path: 'YOUR_PRIVATE_PAGE',
renderMode: RenderMode.Server,
headers: {
'Cache-Control': 'private',
}
}
];
সম্মানিত নির্দেশাবলী
ফায়ারবেস App Hosting এর ক্লাউড সিডিএন ইনস্ট্যান্স নিম্নলিখিত ক্যাশে নিয়ন্ত্রণ নির্দেশিকাগুলি মেনে চলে:
| নির্দেশিকা | অনুরোধ | প্রতিক্রিয়া |
|---|---|---|
no-store | যখন কোনও অনুরোধে উপস্থিত থাকে, তখন প্রতিক্রিয়া ক্যাশে করা হবে না। | no-store সাথে একটি প্রতিক্রিয়া ক্যাশে করা হয় না। |
no-cache | ক্লায়েন্টদের সম্ভাব্যভাবে মূল স্থানে পুনঃপ্রমাণ শুরু করা বা জোর করে যাচাই করা থেকে বিরত রাখার জন্য no-cache অনুরোধ নির্দেশিকা উপেক্ষা করা হয়। | no-cache থাকা একটি প্রতিক্রিয়া ক্যাশে করা হয় কিন্তু পরিবেশনের আগে অবশ্যই মূল নম্বর দিয়ে পুনরায় যাচাই করতে হবে। |
public | নিষিদ্ধ | ক্যাশেবিলিটির জন্য এই নির্দেশিকাটি প্রয়োজন নয়, তবে প্রক্সি দ্বারা ক্যাশে করা উচিত এমন কন্টেন্টের জন্য এটি অন্তর্ভুক্ত করা একটি সর্বোত্তম অনুশীলন। |
private | নিষিদ্ধ | private ডিরেক্টিভ সহ একটি প্রতিক্রিয়া ক্লাউড সিডিএন দ্বারা ক্যাশে করা হয় না, এমনকি যদি প্রতিক্রিয়াটি অন্যথায় ক্যাশেযোগ্য বলে বিবেচিত হয়। ক্লায়েন্ট (যেমন ব্রাউজার) এখনও ফলাফল ক্যাশে করতে পারে। সমস্ত প্রতিক্রিয়া ক্যাশে করা রোধ করতে no-store ব্যবহার করুন। |
max-age=SECONDS | max-age অনুরোধ নির্দেশিকা উপেক্ষা করা হয়। একটি ক্যাশেড প্রতিক্রিয়া এমনভাবে ফেরত পাঠানো হয় যেন এই শিরোনামটি অনুরোধে অন্তর্ভুক্ত ছিল না। | max-age নির্দেশিকা সহ একটি প্রতিক্রিয়া সংজ্ঞায়িত SECONDS পর্যন্ত ক্যাশে করা হয়। |
s-maxage=SECONDS | নিষিদ্ধ | s-maxage নির্দেশিকা সহ একটি প্রতিক্রিয়া নির্ধারিত SECONDS পর্যন্ত ক্যাশে করা হয়। যদি max-age এবং s-maxage উভয়ই উপস্থিত থাকে, তাহলে ক্লাউড CDN দ্বারা s‑maxage ব্যবহার করা হয়। এই নির্দেশিকা সহ প্রতিক্রিয়াগুলি পুরানো পরিবেশিত হয় না। s-max-age (দুটি হাইফেন) ক্যাশিংয়ের উদ্দেশ্যে বৈধ নয়। |
max-stale=SECONDS | max-stale রিকোয়েস্ট ডিরেক্টিভ ক্লায়েন্ট সর্বোচ্চ কত সেকেন্ডে স্টেলনেস গ্রহণ করতে ইচ্ছুক তা নির্ধারণ করে। ক্লাউড সিডিএন এটিকে সম্মান করে এবং শুধুমাত্র তখনই একটি স্ট্যাল ক্যাশেড রেসপন্স ফেরত দেয় যদি রেসপন্সের স্ট্যালনেস max-stale ডিরেক্টিভের চেয়ে কম হয়। অন্যথায়, অনুরোধটি পরিবেশন করার আগে এটি পুনরায় যাচাই করে। | নিষিদ্ধ |
stale-while-revalidate=SECONDS | নিষিদ্ধ | পুনর্মূল্যায়ন অ্যাসিঙ্ক্রোনাসভাবে সঞ্চালিত হওয়ার সময়, stale-while-revalidate সহ একটি প্রতিক্রিয়া ক্লায়েন্টকে সর্বোচ্চ সেকেন্ডের জন্য পরিবেশন করা হয়। |
must-revalidate | নিষিদ্ধ | একটি উত্তরের মেয়াদ শেষ হওয়ার পর, must-revalidate থাকলে, সেটি অরিজিন সার্ভারের মাধ্যমে পুনরায় যাচাই করা হয়। এই নির্দেশিকা সহ উত্তরগুলি পুরানো অবস্থায় পরিবেশিত হয় না। |
proxy-revalidate | proxy-revalidate সহ একটি প্রতিক্রিয়া মেয়াদ শেষ হওয়ার পরে অরিজিন সার্ভারের সাথে পুনরায় যাচাই করা হয়। এই নির্দেশিকা সহ প্রতিক্রিয়াগুলি পুরানো পরিবেশিত হয় না। | |
no-transform | নিষিদ্ধ | ক্লাউড সিডিএন দ্বারা কোনও রূপান্তর প্রয়োগ করা হয় না। |
ক্যাশেড এবং আনক্যাশেড ট্র্যাফিক পরিমাপ করুন
App Hosting কনসোলের ব্যবহার ট্যাবে "ক্লাউড সিডিএন - আউটগোয়িং ব্যান্ডউইথ" গ্রাফটি পরিবেশিত ক্যাশেড এবং আনক্যাশেড বাইট দেখায় এবং প্রতিটি রোলআউটের জন্য একটি চিহ্ন থাকে। আপনার ক্যাশ অপ্টিমাইজেশন প্রচেষ্টার কার্যকারিতা পরিমাপ করতে আপনি এই গ্রাফটি ব্যবহার করতে পারেন।
আপনি রুট-ভিত্তিক মনিটরিং এর মাধ্যমে আপনার ওয়েব অ্যাপে নির্দিষ্ট রুটের জন্য ক্যাশে হিট রেটও দেখতে পারেন।