বার্নিশ সহ কাস্টম 503 ত্রুটি পৃষ্ঠা


15

আমি কীভাবে বার্নিশকে ডিফল্ট "গুরু ধ্যান" বার্তার পরিবর্তে একটি কাস্টম এইচটিএমএল ত্রুটি পৃষ্ঠা প্রদর্শন করতে বলতে পারি ?


কিছু ইনলাইন সি দিয়ে করা যেতে পারে, দেখুন: mohanjith.net/blog/2009/08/…
3molo

ধন্যবাদ, আপনি কেন এই মন্তব্যটিকে প্রস্তাবিত উত্তর দিচ্ছেন না?
খ্রিস্টান দাওন

উত্তর:


13

বার্নিশ প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী এই জন্য 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 -->
        "};
    }
}

এটি ভিসিএল ৪.০ এ কাজ করে না - আপনি যদি ভিসিএল ৪.০ ব্যবহার করেন তবে নীচের উত্তরটি দেখুন
ফিলিপ

18

নোট করুন যে উপরের উত্তরগুলি বার্নিশ ৩ এর জন্য।

আশা করি এটি লোকেদের উপরের উত্তরগুলি পড়তে এবং তাদের ভি 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
lucaferrario
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.