আমি কীভাবে বার্নিশকে ডিফল্ট "গুরু ধ্যান" বার্তার পরিবর্তে একটি কাস্টম এইচটিএমএল ত্রুটি পৃষ্ঠা প্রদর্শন করতে বলতে পারি ?
আমি কীভাবে বার্নিশকে ডিফল্ট "গুরু ধ্যান" বার্তার পরিবর্তে একটি কাস্টম এইচটিএমএল ত্রুটি পৃষ্ঠা প্রদর্শন করতে বলতে পারি ?
উত্তর:
বার্নিশ প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী এই জন্য vcl_error ব্যবহার প্রস্তাব দেওয়া (এবং আমি এটি সম্পন্ন করেছি):
এটি ত্রুটি পৃষ্ঠার জন্য ডিফল্ট ভিসিএল:
sub vcl_error {
set obj.http.Content-Type = "text/html; charset=utf-8";
synthetic {"
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>"} obj.status " " obj.response {"</title>
</head>
<body>
<h1>Error "} obj.status " " obj.response {"</h1>
<p>"} obj.response {"</p>
<h3>Guru Meditation:</h3>
<p>XID: "} req.xid {"</p>
<address><a href="http://www.varnish-cache.org/">Varnish</a></address>
</body>
</html>
"};
return(deliver);
}
আপনি যদি কাস্টম সংস্করণ চান তবে কেবল আপনার কনফিগারেশনে ফাংশনটি ওভাররাইড করুন এবং synthetic
বিবৃতিতে মার্কআপটি প্রতিস্থাপন করুন ।
আপনি যদি বিভিন্ন ত্রুটি কোডের জন্য আলাদা মার্কআপ রাখতে চান তবে আপনি এটি মোটামুটি সহজেই করতে পারেন:
sub vcl_error {
set obj.http.Content-Type = "text/html; charset=utf-8";
if (obj.status == 404) {
synthetic {"
<!-- Markup for the 404 page goes here -->
"};
} else if (obj.status == 500) {
synthetic {"
<!-- Markup for the 500 page goes here -->
"};
} else {
synthetic {"
<!-- Markup for a generic error page goes here -->
"};
}
}
নোট করুন যে উপরের উত্তরগুলি বার্নিশ ৩ এর জন্য।
আশা করি এটি লোকেদের উপরের উত্তরগুলি পড়তে এবং তাদের ভি 4 ভিসিএলে ভিসিএল_রর লাগানো থেকে রক্ষা করবে :)
ওয়ার্নিশ ৪.০ এর জন্য বিল্টিন ভিসিএল
sub vcl_synth {
set resp.http.Content-Type = "text/html; charset=utf-8";
set resp.http.Retry-After = "5";
synthetic( {"<!DOCTYPE html>
<html>
<head>
<title>"} + resp.status + " " + resp.reason + {"</title>
</head>
<body>
<h1>Error "} + resp.status + " " + resp.reason + {"</h1>
<p>"} + resp.reason + {"</p>
<h3>Guru Meditation:</h3>
<p>XID: "} + req.xid + {"</p>
<hr>
<p>Varnish cache server</p>
</body>
</html>
"} );
return (deliver);
}
এও নোট করুন যে আপনি যদি নিজের ভিসিএল থেকে কোনও ত্রুটি ফেলে দিতে চান তবে আপনি আর 'ত্রুটি' ফাংশনটি ব্যবহার করবেন না, পরিবর্তে আপনি এটি করবেন:
return (synth(405));
এছাড়াও, ব্যাকএন্ড থেকে 413, 417 এবং 503 ত্রুটি স্বয়ংক্রিয়ভাবে এই ফান্টের মাধ্যমে রুট করা হয়েছে।
sub vcl_backend_error
, আপনি দেখতে পাবেন serverfault.com/a/665917/102757 এবং serverfault.com/a/716767/102757