nginx: "সার্ভার_নাম" রেজোলিউশন অর্ডার?


8

আমার nginx.conf এ আমার একাধিক "সার্ভার" ব্লক রয়েছে। যে ক্রমটিতে সার্ভার_নাম মিলছে সেটি নিয়ে ডকুমেন্টেশনটি ভুল বলে মনে হচ্ছে।

আমার কনফারেন্স দেখতে এমন কিছু দেখাচ্ছে:

server {
  listen 80
  server_name domain.com *.domain.com

  # do stuff
}

server {
  listen 80
  server_name sub.domain.com *.sub.domain.com

  # do something else
}

আমি হোস্ট = www.sub.domain.com এর সাথে অনুরোধগুলি কেন সঠিক জায়গায় (দ্বিতীয় সার্ভার) যাচ্ছে কেন তা নথিভুক্ত করার চেষ্টা করছি, যখন ডকুমেন্টেশনটি ইঙ্গিত করে যে এটি প্রথম সার্ভারে যেতে হবে।

এনগিনেক্স ডকুমেন্টেশন ইঙ্গিত দেয় যে সার্ভার ব্লকগুলি ম্যাচগুলির জন্য "ক্রমে" পরীক্ষা করা হয়েছে, যার অর্থ হোস্ট * .sub.domain.com এর সাথে কোনও অনুরোধ দ্বিতীয় সার্ভার নয়, প্রথম সার্ভারের দ্বারা ধরা উচিত। ( http://wiki.nginx.org/HttpCoreModule#server_name )

এছাড়াও, * ওয়াইল্ডকার্ড যে কোনও সংখ্যক সাবডোমেন অংশের সাথে মেলে, তাই * .domain.com www.sub.domain.com এর সাথে মেলে। ( http://nginx.org/en/docs/http/server_names.html#wildcard_names )

যদি এই ডকুমেন্টেশনটি ভুল হয় তবে আসল মিলের ক্রমটি কী?

উত্তর:


18

এনজিনেক্স ডকুমেন্টেশন ( http://nginx.org/en/docs/http/server_names.html ) থেকে:

নাম অনুসারে ভার্চুয়াল সার্ভার অনুসন্ধান করার সময়, নামটি যদি নির্দিষ্ট বর্ণগুলির মধ্যে একের বেশিের সাথে মিলে যায়, উদাহরণস্বরূপ ওয়াইল্ডকার্ড নাম এবং নিয়মিত এক্সপ্রেশন ম্যাচ উভয়ই, প্রথম মিলের ভেরিয়েন্টটি নীচের ক্রমের সাথে বেছে নেওয়া হবে:

  1. সঠিক নাম
  2. তারকাচিহ্ন দিয়ে শুরু হওয়া দীর্ঘতম ওয়াইল্ডকার্ড নাম, যেমন “* .example.org”
  3. দীর্ঘতম ওয়াইল্ডকার্ডের নামটি একটি নক্ষত্রের সাথে শেষ হয়, যেমন "মেল * *"
  4. প্রথম মিলিত নিয়মিত অভিব্যক্তি (একটি কনফিগারেশন ফাইলে উপস্থিতির ক্রমে)

2

নথি বলছে:

এনগিনেক্স কনফিগারেশন ফাইলগুলির ব্লক server ...} সার্ভারের বিপরীতে আগত এইচটিটিপি অনুরোধের হোস্ট শিরোনামটির তুলনা করে এবং মেলে এমন প্রথমটি নির্বাচন করে।

যা ঘটতে দেখা যাচ্ছে তা হ'ল এটি সমস্ত serverব্লক থেকে সেরা ম্যাচটি বেছে নেয় তাই www.sub.domain.comদ্বিতীয় কনফিগারেশনের সাথে মিলে যায়। এটির ব্যাক আপ করার জন্য আমার কাছে কোনও ডকুমেন্টেশন নেই, সুতরাং আপনি সেই আচরণটি নিশ্চিত করতে কিছু পরীক্ষা চালাতে পারেন। রয়েছে এই ডক নাম রেজল্যুশন বিষয়ে কথা।

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