আমি কীভাবে ভুল হোস্ট শিরোলেখ সেট দিয়ে অনুরোধগুলি ব্লক করতে পারি?


12

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

আরও কংক্রিট হতে, আমার nginx.conf এ এই দুটি সার্ভার ব্লক রয়েছে:

server {
    # Redirect from the old domain to the new domain; also redirect
    # from www.newdomain.com to newdomain.com without the "www"
    server_name www.olddomain.com olddomain.com www.newdomain.com;
    listen 80;
    return 301 $scheme://newdomain.com$request_uri;
}

server {
    server_name newdomain.com localhost;
    listen 80;

    # Actual configuration goes here...
}

যার হোস্ট www.olddomain.com, olddomain.com, www.newdomain.com, বা newdomain.com নয় এমন যেকোন ট্র্যাফিককে আমি ব্লক (অর্থাত্ একটি "444 স্থিতির কোড") ব্লক করতে চাই। কিভাবে আমি এটি করতে পারব?

উত্তর:


14

একটি ডিফল্ট সার্ভার সংজ্ঞায়িত করুন

যদি আপনি স্পষ্টভাবে কোনও ডিফল্ট সার্ভার সংজ্ঞায়িত না করেন তবে এনজিনেক্স সুস্পষ্টভাবে প্রথম-প্রাপ্ত সার্ভারটি ব্যবহার করবে । সুতরাং, অজানা হোস্টগুলিকে ব্লক করতে কেবল একটি সার্ভার ব্লক তৈরি করুন :

server {
  listen 80 default_server;
  return 444;
}

(না এটি একটি সার্ভার_নাম যুক্ত করার প্রয়োজন নেই - যেহেতু এটি কখনই মিলবে না)।

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