হ্যাপ্রোক্সি সহ বেশ কয়েকটি সাবডোমেনকে একক ব্যাকএন্ডে পরিচালনা করুন


10

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

বর্তমানে, আমি সেপার্ট লাইনে sub সমস্ত সাবডোমেনকে তালিকাভুক্ত করছি। আমার ফ্রন্টএন্ড কনফিগারেশনটি এর মতো দেখাচ্ছে:

frontend http-in
    bind *:80

    acl alpha     hdr(host) -i alpha.com
    acl beta      hdr(host) -i beta.com
    acl gamma00   hdr(host) -i apple.gamma.com
    acl gamma01   hdr(host) -i banana.gamma.com
    acl gamma02   hdr(host) -i cherry.gamma.com
    acl gamma03   hdr(host) -i durian.gamma.com
    acl gamma04   hdr(host) -i elderberry.gamma.com
    acl gamma05   hdr(host) -i fig.gamma.com
    acl gamma06   hdr(host) -i grapefruit.gamma.com
    acl gamma     hdr(host) -i gamma.com

    use_backend a if alpha
    use_backend b if beta
    use_backend sub1 if gamma00
    use_backend sub1 if gamma01
    use_backend sub1 if gamma02
    use_backend sub2 if gamma03
    use_backend sub2 if gamma04
    use_backend sub2 if gamma05
    use_backend sub2 if gamma06
    use_backend g if gamma

    default_backend default

আরও সংক্ষিপ্ত আকারে অনুরূপ ফলাফল অর্জন করার কোনও উপায় আছে কি? এই জাতীয় তালিকা কার্যকর কি কার্যকর, বা কোনও সময়ে একটি রেইজেক্সে স্যুইচ করা ভাল?


হেই, আপনার প্রশ্নের কীওয়ার্ড রয়েছে regexযা আসলে আপনার উত্তর, আমি বিশ্বাস করি। এছাড়াও নোট করুন যে আপনি hdr_begপরিবর্তে ব্যবহার করতে পারেন hdrযাতে আপনি কেবলমাত্র সাবডোমেনগুলি গণনা করতে পারেন। অবশেষে, কেবল এসিএল লাইনে একই ব্যবহার করে আপনার gamma00-06এসিএলগুলি কেবল দুটি এসিএল, একটির জন্য sub1এবং একটির জন্য সঙ্কুচিত হওয়া উচিত should sub2acl <title>
ফেলিক্স ফ্রাঙ্ক

উত্তর:


15

সর্বাধিক পারফরম্যান্স রাখতে (প্রতিটি হিটকে একটি রেজেক্স এড়ানো) তবে তবুও কনফিগারটি সাফ করতে আমি আপনার এসিএলগুলির জন্য একটি বাহ্যিক ফাইলটি এখানে ব্যবহার করব। উদাহরণস্বরূপ বলা যাক যে আপনার কাছে একটি ফাইল ডাকা /etc/haproxy/sub1urlsহয়েছিল, এটি হ'ল:

apple.gamma.com
banana.gamma.com
cherry.gamma.com

তারপরে আপনার কনফিগারেশনে এসিএলটি সহজেই হতে পারে:

acl is_sub1 hdr(host) -i -f /etc/haproxy/sub1urls

অন্য হোস্টগুলিকে sub2urlsএকইভাবে ফাইলে রাখলে আপনার কনফিগারেশনটি হ্রাস করা যায়:

frontend http-in
    bind *:80

    acl alpha     hdr(host) -i alpha.com
    acl beta      hdr(host) -i beta.com
    acl is_sub1   hdr(host) -i -f /etc/haproxy/sub1urls
    acl is_sub2   hdr(host) -i -f /etc/haproxy/sub2urls
    acl gamma     hdr(host) -i gamma.com

    use_backend a if alpha
    use_backend b if beta
    use_backend sub1 if is_sub1
    use_backend sub2 if is_sub2
    use_backend g if gamma

    default_backend default

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

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