'শুনুন' নির্দেশনার জন্য এনগিনেক্সের বিভিন্ন মান বোঝা


10

আমি nginx কনফিগারেশন লিখছি, এবং আমার একটি মৌলিক প্রশ্ন আছে।

মধ্যে পার্থক্য কি:

listen 443 ssl;বনাম listen [::]:443 ssl;বনামlisten [::]:443 ssl http2;

আমার লক্ষ্য এই ওয়েব অ্যাপ্লিকেশনটি সুরক্ষিত তবে পুরানো ক্লায়েন্টদের জন্যও উপযুক্ত compatible

দ্রষ্টব্য: আমি বুঝতে পারি যে [::]:443এটি আইপিভি 6 এর সাথে আছে তবে এটি কি এই ক্ষেত্রে আইপিভি 4কেও অন্তর্ভুক্ত করে? আমার ধারণাগুলি সাফ করতে চাই।

উত্তর:


16

listen 443 ssl: পোর্ট 443 ( 0.0.0.0:443) এ সার্ভারের সমস্ত আইপিভি 4 ঠিকানায় এনগিনেক্স শুনতে দেয়

যখন

listen [::]:443 ssl: সার্ভারের সমস্ত আইপিভি 6 ঠিকানায় পোর্ট 443 ( :::443) এ এনগিনেক্স শুনতে দেয়


[::]:443আপনি প্যারামিটারটি নির্দিষ্ট না করে ডিফল্টভাবে আইপিভি 4-তে এনজিন্স প্রতিক্রিয়া জানাতে পারবেন না ipv6only=off:

listen [::]:443 ipv6only=off;


দস্তাবেজ অনুসারে: http://nginx.org/en/docs/http/ngx_http_core_module.html#listen

এসএসএল:

এসএসএল প্যারামিটার (0.7.14) উল্লেখ করে যে এই বন্দরে গৃহীত সমস্ত সংযোগগুলি এসএসএল মোডে কাজ করা উচিত।

HT2:

HT2 / 2 সংযোগ গ্রহণ করতে HT2 পরামিতি (1.9.5) পোর্টটি কনফিগার করে ।

এর অর্থ এই নয় যে এটি কেবল এইচটিটিপি / ২ সংযোগ গ্রহণ করে।

অনুযায়ী RFC7540

একটি ক্লায়েন্ট যা পরবর্তী হপে HTTP / 2 এর সমর্থন সম্পর্কে পূর্ব জ্ঞান ছাড়াই "HTTP" ইউআরআইয়ের জন্য অনুরোধ করে তা এইচটিটিপি আপগ্রেড প্রক্রিয়াটি ব্যবহার করে। ক্লায়েন্টটি এইচটিটিপি / ১.১ অনুরোধ করে তা করে যা "এইচ 2 সি" টোকেন সহ একটি আপগ্রেড শিরোনাম ক্ষেত্রকে অন্তর্ভুক্ত করে।

HTTP / 2 সমর্থন করে না এমন একটি সার্ভার অনুরোধটিতে সাড়া দিতে পারে যেমন আপগ্রেড শিরোনাম ক্ষেত্রটি অনুপস্থিত ছিল।

HTTP/1.1 200 OK Content-Length: 243 Content-Type: text/html

HTTP / 2 সমর্থনকারী একটি সার্ভার 101 (সুইচিং প্রোটোকল) প্রতিক্রিয়া সহ আপগ্রেড গ্রহণ করে। 101 টি প্রতিক্রিয়া শেষ করে এমন খালি রেখার পরে সার্ভারটি HTTP / 2 ফ্রেম প্রেরণ শুরু করতে পারে।

সংক্ষেপ :

HTTP / 2 সমর্থন করে না এমন ক্লায়েন্ট কখনই সার্ভারকে HTTP / 2 যোগাযোগের আপগ্রেডের জন্য জিজ্ঞাসা করবে না: তাদের মধ্যে যোগাযোগ পুরোপুরি HTTP1 / 1 হবে।

HTTP / 2 সমর্থন করে এমন একটি ক্লায়েন্ট সার্ভারকে HTTP / 2 আপগ্রেডের জন্য (HTTP1 / 1 ব্যবহার করে) জিজ্ঞাসা করবে:

  • যদি সার্ভারটি HTTP / 2 প্রস্তুত থাকে, তবে সার্ভারটি ক্লায়েন্টকে যেমন খেয়াল করবে: তাদের মধ্যে যোগাযোগটি এইচটিটিপি / 2 এ স্যুইচ করা হবে।
  • যদি সার্ভারটি HTTP / 2 প্রস্তুত না হয়, তবে সার্ভারটি এইচটিটিপি 1/1 এর সাথে উত্তর প্রদানের আপগ্রেড অনুরোধটিকে অগ্রাহ্য করবে: তাদের মধ্যে যোগাযোগটি যথেষ্ট পরিমাণে HTTP1 / 1 থাকা উচিত stay

এখানে আরও সংক্ষিপ্ত বিবরণ দেওয়া হয়েছে: http://qnimate.com/http2-compatibility-with-old-browser-and-servers/


তবে এনজিনেক্স ডকটি টিএলএসের উপরে HTTP / 2 সম্পর্কে নিম্নলিখিতটি লিখেছেন:

নোট করুন যে টিএলএস-এর মাধ্যমে এইচটিটিপি / 2 সংযোগ গ্রহণের জন্য "অ্যাপ্লিকেশন-স্তর প্রোটোকল আলোচনা" (ALPN) টিএলএস এক্সটেনশন সমর্থন প্রয়োজন, যা কেবল ওপেনএসএসএল সংস্করণ 1.0.2 থেকে উপলব্ধ।

পুরানো ক্লায়েন্টরা এই প্রয়োজনীয়তার সাথে সম্মতিযুক্ত তা নিশ্চিত করুন।


0

একটি বিকল্প বলা হয় ipv6onlyযা IPv6 ঠিকানাটি আইপিভি 4-তেও প্রযোজ্য কিনা তা নির্ধারণ করে। ডিফল্টরূপে এটি চালু হয় (যার অর্থ এটি হয় না)।

ম্যানুয়ালটিতে বলা হয়েছে যে এটি কেবল একবার সেট করা যেতে পারে, যার অর্থ আমার মনে হয় আপনি যদি এটি কোনও listenনির্দেশে বন্ধ করেন তবে এটি সকলের জন্য বন্ধ হয়ে যায়।

বিশদ জন্য এই নথিটি দেখুন ।


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