সার্ভারে অ্যাড-হেডার নির্দেশিকা অবস্থানের ওভাররাইটে নির্দেশাবলী


11

এনজিনেক্স ১.২.১ ব্যবহার করে আমি নীচে ব্যবহার করে একাধিক শিরোনাম যুক্ত করতে সক্ষম add_header:

server {
    listen       80;
    server_name  localhost;
    root /var/www;
    add_header Name1 Value1;      <=== HERE
    add_header Name2 Value2;      <=== HERE

    location / {
        echo "Nginx localhost site";
    }
}

ফলাফল

GET /
HTTP/1.1 200 OK
Name1: Value1
Name2: Value2

তবে আমি যত তাড়াতাড়ি আমি add_headerভিতরে দিকনির্দেশনাটি ব্যবহার করি location, অন্য add_headerনির্দেশাবলীও serverউপেক্ষা করা হয়

server {
    listen       80;
    server_name  localhost;
    root /var/www;
    add_header Name1 Value1;      <=== HERE
    add_header Name2 Value2;      <=== HERE

    location / {
        add_header Name3 Value3;  <=== HERE
        add_header Name4 Value4;  <=== HERE
        echo "Nginx localhost site";
    }
}

ফলাফল

GET /
HTTP/1.1 200 OK
Name3: Value3
Name4: Value4

ডকুমেন্টেশন বলছেন যে উভয় serverএবং locationবৈধ contextও রাজ্য যে ব্যবহার না add_headerএটি ব্যবহার এক প্রতিরোধ অন্য।

প্রশ্ন 1: আপনি কি জানেন যে এটি কোনও বাগ বা উদ্দেশ্যমূলক আচরণ এবং কেন?

প্রশ্ন 2: আপনি HttpHeadersMoreModuleমডিউলটি ব্যবহার না করে এটি স্থির করার জন্য অন্যান্য বিকল্পগুলি দেখতে পাচ্ছেন ?

উত্তর:


18

এটি প্রত্যাশিত আচরণ। add_headerনির্দেশনা, nginx অন্যান্য সমস্ত অ্যারের-টাইপ নির্দেশনা মতো, আগের পর্যায় থেকে উত্তরাধিকারসূত্রে যদি এবং কেবল যদি কোন হয় add_headerনির্দেশনা বর্তমান স্তরের উপর সংজ্ঞায়িত।

আপনি যদি nginx এর মধ্যে সমস্ত শিরোনাম যুক্ত করতে চান তবে আপনাকে location /সেগুলি সমস্ত তালিকাতে রাখতে হবে location /, অর্থাত্‍

location / {
    add_header Name1 Value1;
    add_header Name2 Value2;
    add_header Name3 Value3;
    add_header Name4 Value4;
    return 200 "";
}

যদি আপনার একক জায়গায় বড় শিরোনামের উপসেট তালিকাভুক্ত করার কোনও উপায়ের প্রয়োজন হয় তবে আপনি includeএটির জন্য নির্দেশিকা ব্যবহার করতে পারেন । ডক্স এখানে দেখুন ।


আমার কেবল নির্দেশের add_headerভিতরে রয়েছে location, তবে আমি এখনও এই শিরোনামটি যুক্ত দেখতে পাচ্ছি না - কোনও ধারণা?
আদিত্য এমপি

@ অ্যাডটিয়ামনন আপনার কি কেবল একটি আছে add_header? যদি হ্যাঁ, তবে নিশ্চিত হয়ে নিন যে প্রতিক্রিয়া কোডটি ডক্স থেকে একটি, এনগিনএক্স.আর / আর / অ্যাড_হেডার দেখুন
ম্যাক্সিম ডউনিন

হাই ম্যাক্সিম, আমার বেশ কয়েকটি ভিন্ন সমস্যা ছিল, শেষ পর্যন্ত আমার কাছে একটি কনফিগার রয়েছে যা কাজ করে: stackoverflow.com/a/19135714/443219
আদিত্য এমপি

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