যখন কোনও অ্যাকসেল মেলে না তখন HAProxy থেকে 404 পরিবেশন করুন


15

আমি বর্তমানে 1.5DP-17 ব্যবহার করে HAProxy পুনরায় কনফিগার করছি। যখন আমি কোনও বিশেষ অনুরোধের জন্য কোনও ব্যাকএন্ড ব্যবহার না করে তখন আমি 404 ত্রুটিটি ফিরিয়ে আনতে চাই।

আমাদের বর্তমান কনফিগারেশনটি আমাদের জাঙ্গো অ্যাপ্লিকেশন সার্ভারগুলিতে যাওয়ার জন্য ডিফল্ট_ব্যাকএন্ড ব্যবহার করে, তবে যখন অন্যান্য কনফিগার করা ব্যাকএন্ডের কোনওটির সাথে মেলে না এমন পুরো পরীক্ষার অনুরোধগুলি (পেন-টেস্টের মতো) উপস্থিত থাকে, তখন আমাদের জাঙ্গো সার্ভারগুলি চেষ্টা করার সাথে সাথে থামবে to এই অবৈধ অনুরোধগুলি পরিবেশন করতে, অবশেষে একটি 404 ফেরত।

আমি জ্যাঙ্গো ব্যাকএন্ডে ডেলিগেশন না করে HAProxy থেকে 404 পরিবেশন করতে চাই। আমি বর্তমানে এটি একটি হ্যাক দিয়ে অর্জন করছি:

frontend www
    ...
    default_backend nomatch

backend nomatch
    errorfile 503 /var/www/http/404.http

এবং 404.http ফাইলের মধ্যে আমি শিরোনামগুলিতে 404 স্থিতি কোডটি সেট করি। এটি কাজ করে তবে খুব ভুল অনুভব করে। HAProxy দিয়ে এটি অর্জনের আরও ভাল উপায় আছে কি? বা আমার কি একটি নিয়মিত ব্যাকএন্ড ব্যবহার করা উচিত এবং সেই হ্যান্ডেলটিকে 404 দিয়ে সাড়া দেওয়া উচিত?


404.http ফাইলটির সামগ্রী কী?
জেসন ফ্লয়েড

3
@ জেসনফ্লয়েড এর HTTP/1.0 404 Not Foundপরে কিছু অন্যান্য শিরোনাম, তারপরে একটি ফাঁকা লাইন, তারপরে <html>সামগ্রী।
জোশ স্মিটন

উত্তর:


4

যদি আপনি নিম্নলিখিত প্রতিক্রিয়া কোডগুলির সাথে ঠিক থাকেন: 200, 400, 403, 405, 408, 429, 500, 502, 503, বা 504।

তাহলে আপনি এই জাতীয় কিছু করতে পারেন:

frontend www
  ...
  default_backend no-match

backend no-match
  http-request deny deny_status 400

2

অনুরূপ কিছু চাওয়ার পরে আমি একই জিনিসটি সামনে এলাম। এটি ভুল অনুভব করেছে তবে এটি অনুশীলনে খুব ভালভাবে কাজ করে এবং নির্দিষ্ট ইউআরএলগুলিকে কালো তালিকাভুক্ত করার চেষ্টা করার চেয়ে পরিষ্কার পরিচ্ছন্ন। কেবল কোনও মন্তব্য করবেন তা নিশ্চিত হন যাতে এটি ভুল বলে কেউই আসে না।

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