যখন HAProxy 503 HTTP কোড প্রেরণ করে আমি কাস্টম 503 ত্রুটি নথিটি কীভাবে ব্যবহার করতে পারি?


20

ব্যাক সার্ভার (ব্যাকএন্ড) এইচটিটিপি 503 কোড প্রেরণ করার সময় আমি হ্যাপ্রোক্সিটি তার নিজস্ব 503 নথি পৃষ্ঠা ব্যবহার করতে চাই। এটা কি সম্ভব?

"মনিটর ব্যর্থ" শর্তের মতো কিছু দেখেছেন তবে কীভাবে এটি সীমান্তে যুক্ত করবেন তা জানেন না।

উত্তর:


23

আপনি errorfileনির্দেশটি এবং তারপরে একটি কাস্টম .httpটেক্সট ফাইল ব্যবহার করতে পারেন । উদাহরণস্বরূপ:

errorfile 503 /etc/haproxy/errors/503-mycustom.http

ফাইলের বিষয়বস্তুগুলি তখন এমন কিছু হবে:

HTTP/1.0 503 Service Unavailable
Cache-Control: no-cache
Connection: close
Content-Type: text/html

<html> 
  <head>
    <title>RARRR!!!!!</title>
  </head> 
  <body style="font-family:Arial,Helvetica,sans-serif;">
    <div style="margin: 0 auto; width: 960px;"> 
          <h2 >RAWR RAWR RAWR</h2>
    </div>
  </body> 
</html>

errorfileডিরেক্টিভের একটি ব্যাকএন্ড নির্দিষ্ট হিসাবে ভাল হতে পারবেন না।

নোডগুলি অনলাইনে থাকলে HAProxy দ্বারা প্রেরিত প্রতিক্রিয়া পরিবর্তন করতে "ত্রুটি ফাইল" সেটিংস ব্যবহার করা যাবে না। সমস্ত নোড অফলাইন থাকা অবস্থায় এই সেটিংটি কেবলমাত্র HAProxy কে প্রভাবিত করে।

এটি বোঝা গুরুত্বপূর্ণ যে এই কীওয়ার্ডটি সার্ভার দ্বারা ফিরিয়ে নেওয়া ত্রুটিগুলি পুনরায় লেখার জন্য নয়, তবে ত্রুটিগুলি সনাক্ত করা হয়েছে এবং HAProxy দ্বারা ফিরে এসেছে। এই কারণেই সমর্থিত ত্রুটির তালিকা একটি ছোট সেটের মধ্যে সীমাবদ্ধ।


2
নোট করুন যে \r\nHTTP প্রোটোকল স্পেসিফিকেশন মেনে চলার জন্য .http ফাইলটি অবশ্যই শিরোনামগুলিতে লাইন বিরতির জন্য ব্যবহার করতে হবে। যদি উইন্ডোজ বাক্স থেকে আপলোড করা হয় তবে binaryউইন্ডোজ লাইন ব্রেককে \r\nইউনিক্স স্টাইল লাইন ব্রেকগুলিতে রূপান্তর করতে এড়াতে s / ftp ফাইল ট্রান্সফারের জন্য মোড ব্যবহার করা নিশ্চিত করুন \n
wqw

6

আপনি করতে পারেন নোংরা কিছু আছে। আপনি প্রতিক্রিয়া 503 টি ব্লক করতে পারেন, যার ফলে কাস্টম 502 ত্রুটি ফিরে আসবে যার ফলস্বরূপ আপনি একটি ত্রুটি পৃষ্ঠা তৈরি করতে পারেন। তবে, মনে রাখবেন যে কোনও কারণেই হ্যাপ্রোক্সিটি একটি 502 (অবৈধ প্রতিক্রিয়া) ফেরত দিতে হবে একই জিনিসটি ফিরে আসবে।

মূলত এটি "আরএসপিডি y HTTP / 1.1 503" "ত্রুটিযুক্ত ফাইল 502" এর সাথে মিলিত হিসাবে সাধারণ।


5

লিগ্যাসি সিস্টেমে আমাদের ওয়েবসাইটের একটি অংশ চলছে এবং আমি নিম্নলিখিতটি ব্যবহার করে শেষ করেছি:

errorfile 502 /etc/haproxy/errors/502.http

acl is_internal_error status ge 500

rspideny . if is_internal_error

আশা করি এটি সহায়তা করে (8 মাস পরে হলেও)।

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