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