সাধারণ কনফিগারেশন বিকল্পগুলি ভাগ করতে আমি কীভাবে এনজিএনএক্স অবস্থানগুলি কনফিগার করতে পারি?


37

আমি কীভাবে অবস্থানের সেটগুলির জন্য একটি ভাগ করা কনফিগার ব্লক কনফিগার করতে পারি?

    location / {

            proxy_pass        http://127.0.0.1:9000/;
            proxy_redirect    off;
            proxy_set_header  Host             $http_host;
            proxy_set_header  X-Real-IP        $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

            proxy_cache cache-test;
            proxy_cache_valid 200 302 24h;
            proxy_cache_valid 404 60s;
            add_header X-Cache-Status $upstream_cache_status;

    }


    location /api/0.1/user{
            proxy_cache_key /user/$http_authorization;
    }

এখন যদি আমি /api/0.1/user অ্যাক্সেস করার চেষ্টা করি তবে আমি 404 পেয়ে যাব কারণ এটি 127.0.0.1:9000 এ অনুরোধটি পাস করে না

উত্তর:


53

একটি সাধারণ প্রক্সি কনফিগারেশন তৈরি করুন এবং প্রয়োজনীয় হিসাবে অন্তর্ভুক্ত করুন।

/etc/nginx/api_proxy.conf

proxy_pass        http://127.0.0.1:9000/;
proxy_redirect    off;
proxy_set_header  Host             $http_host;
proxy_set_header  X-Real-IP        $remote_addr;
proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

proxy_cache cache-test;
proxy_cache_valid 200 302 24h;
proxy_cache_valid 404 60s;
add_header X-Cache-Status $upstream_cache_status;

আপনার হোস্ট কনফিগারেশন ফাইল

...
location /api/0.1/user {
    include /etc/nginx/api_proxy.conf;
    proxy_cache_key /user/$http_authorization;
}
...

1
+1, তবে কেবল একটি নোট: দেখা যাচ্ছে আপনি পুরো অবস্থান সহ এইভাবে কনফিগারেশনের পুরো গুচ্ছটি
সমতুল্য


11

বেশিরভাগ প্রক্সি_ * কনফিগারেশন ভেরিয়েবলগুলি সার্ভারের প্রসঙ্গেও অনুমোদিত হয়, তাই আপনি বেশ কয়েকটি অবস্থানের উপর একই সেটিংস ভাগ করে নিতে এগুলি এড়াতে পারেন।

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


আপনার অবস্থান-নির্দিষ্ট proxy_set_headerনির্দেশাবলী থাকলে এটি কাজ করবে না কারণ "এই নির্দেশাবলী পূর্ববর্তী স্তর থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয় এবং কেবলমাত্র যদি বর্তমান স্তরে কোনও প্রক্সি_সেট_হেডার নির্দেশিকা সংজ্ঞায়িত হয় না।" nginx.org/en/docs/http/…
এমারসন ফারুগিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.