যখন এনজিনেক্স বিপরীত প্রক্সি হিসাবে কনফিগার করা থাকে, তখন এটি কি আপাচের প্রক্সিপ্রিজারহোস্টের মতো ডাউনস্ট্রিম সার্ভারে হোস্ট শিরোনামটি আবার লিখতে পারে?


11

আমি এনগিনেক্সে অ্যাপাচি এর প্রক্সিপ্রিজারহস্ট http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypreservhost বিকল্পের সমতুল্য খুঁজে পাচ্ছি না। ভার্চুয়াল হোস্টগুলিতে প্রক্সি বিপরীত করার জন্য এটি প্রয়োজন।

এটি যা করে তা হ'ল ব্রাউজারটি ডাউন স্ট্রিম সার্ভারের হোস্টের নাম সরবরাহ করে host

এটি কি বিদ্যমান?

উত্তর:


11

আমি মনে করি সমস্যার সমাধান খুঁজে পেয়েছি। ডাউনস্ট্রিম সার্ভারের হোস্টটি প্রেরণ করা এনজিনেক্সের ডিফল্ট আচরণ এবং আমি নির্দেশটি ব্যবহার করে এটিকে ওভাররাইড করেছিলাম:

proxy_set_header Host $host;

যা ব্রাউজার দ্বারা অনুরোধকৃত হোস্টটিকে ডাউন স্ট্রিম সার্ভারে প্রেরণ করে। আমি যা চেয়েছিলাম ঠিক তার বিপরীতে।

সুতরাং যখন এনজিনেক্সের অ্যাপাচি এর সমতুল্য না থাকে ProxyPreserveHost, একই আচরণটি proxy_set_headerনির্দেশের সাথে অর্জন করা যায় এবং এনজিনেক্সের সমাধান আরও সাধারণ general


হওয়া উচিত proxy_set_header Host $http_host;
রব

@ রব, এনগিনেক্স $http_hostডক্স অনুসারে বিদ্যমান নেই: nginx.org/en/docs/varindex.html
ড্যানিয়েল সেরোদিও

1
@ ড্যানিয়েলসিরোদিও আসলে, হ্যাঁ এটি বিদ্যমান আছে, কমপক্ষে 99.99% সংযোগের জন্য। ডকুমেন্টেশন দেখুন । এটি থেকে খুব সূক্ষ্মভাবে পৃথক $host
মাইকেল হ্যাম্পটন


1

একটি কার্যকরী উদাহরণ:

  set $s3_bucket 'SOMEBUCKET.s3.amazonaws.com';

  location / {
        send_timeout 5m;
        proxy_read_timeout 240;
        proxy_send_timeout 240;
        proxy_connect_timeout 240;
        proxy_http_version 1.1;
        proxy_set_header Host $s3_bucket;
        proxy_set_header Authorization '';
        proxy_hide_header x-amz-id-2;
        proxy_hide_header x-amz-request-id;
        proxy_ignore_headers "Set-Cookie";
        proxy_buffering off;
        proxy_intercept_errors on;
        proxy_redirect off;
        resolver 8.8.8.8;
        proxy_pass http://$s3_bucket;
        }

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