503 পরিষেবা অনুপলব্ধ - প্রক্সি টানেল তৈরি 403 এর সাথে ব্যর্থ হয়েছে৷

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

উপসর্গ

ক্লায়েন্ট অ্যাপ্লিকেশনটি API কলগুলির প্রতিক্রিয়া হিসাবে ত্রুটি কোড protocol.http.ProxyTunnelCreationFailed সাথে 503 Service Unavailable একটি HTTP স্ট্যাটাস কোড পায়।http.ProxyTunnelCreationFailed।

ত্রুটি বার্তা

ক্লায়েন্ট অ্যাপ্লিকেশন নিম্নলিখিত প্রতিক্রিয়া কোড পায়:

HTTP/1.1 503 Service Unavailable

উপরন্তু, আপনি নিম্নলিখিত ত্রুটি বার্তা পর্যবেক্ষণ করতে পারেন:

{
   "fault":{
      "faultstring":"Proxy refused to create tunnel with response status 403",
      "detail":{
         "errorcode":"protocol.http.ProxyTunnelCreationFailed"
      }
   }
}

ফরোয়ার্ড প্রক্সি এবং টানেলিং

Apigee Edge আপনার API প্রক্সিগুলিকে একটি প্রক্সি সার্ভারের মাধ্যমে আপনার ব্যাকএন্ড সার্ভারের সাথে যোগাযোগ করতে দেয় যেমনটি কনফিগার ফরোয়ার্ড প্রক্সিতে ব্যাখ্যা করা হয়েছে। প্রক্সি সার্ভার ব্যাকএন্ড সার্ভারে একটি সুরক্ষিত (HTTPS) বা অ-নিরাপদ (HTTP) সংযোগ খোলে প্রক্সি প্রকারের উপর নির্ভর করে ( HTTPClient.proxy.type সম্পত্তি দ্বারা নির্দেশিত) ব্যবহৃত হয় এবং উভয় দিকে ডেটা স্থানান্তর করে। এটি টানেলিং নামে পরিচিত।

ডিফল্টরূপে, Apigee Edge সমস্ত ট্রাফিকের জন্য টানেলিং ব্যবহার করে। টানেলিং অক্ষম করতে, HTTPClient.use.tunneling প্রপার্টিটিকে false সেট করতে হবে।

ত্রুটি কোড: protocol.http.ProxyTunnelCreationFailed

Apigee Edge ত্রুটি কোড protocol.http.ProxyTunnelCreationFailed ফেরত দেয় যদি প্রক্সি সার্ভার ফায়ারওয়াল, ACL (অ্যাক্সেস কন্ট্রোল লিস্ট) বিধিনিষেধ, DNS সমস্যা, ব্যাকএন্ড সার্ভারের অনুপলব্ধতার মতো কোনো সমস্যার কারণে Apigee এজ এবং ব্যাকএন্ড সার্ভারের মধ্যে একটি টানেল তৈরি করতে অক্ষম হয় , টাইমআউট, ইত্যাদি

Apigee Edge থেকে প্রতিক্রিয়ার faultstring স্ট্যাটাস কোড সাধারণত একটি সম্ভাব্য উচ্চ স্তরের কারণ নির্দেশ করে যা এই ত্রুটির কারণ হয়েছে।

ফল্টস্ট্রিং টেমপ্লেট:

Proxy refused to create tunnel with response status STATUS_CODE

ফল্টস্ট্রিং-এ পরিলক্ষিত কিছু স্ট্যাটাস কোডের সম্ভাব্য কারণ:

faultstring -এ নির্দেশিত স্ট্যাটাস কোডের উপর নির্ভর করে নিম্নলিখিত সারণী সম্ভাব্য কারণগুলি বর্ণনা করে:

ফল্টস্ট্রিং বর্ণনা
প্রক্সি রেসপন্স স্ট্যাটাস 403 সহ টানেল তৈরি করতে অস্বীকার করেছে

403 - Forbidden

এটি সম্ভবত ফায়ারওয়াল বা ব্যাকএন্ড সার্ভারে কনফিগার করা ACL সীমাবদ্ধতার কারণে ঘটতে পারে যা টানেল তৈরিতে বাধা দেয়।

প্রক্সি রেসপন্স স্ট্যাটাস 503 সহ টানেল তৈরি করতে অস্বীকার করেছে

503 - Service Unavailable

এটি DNS সমস্যা, ফায়ারওয়াল সীমাবদ্ধতা, ব্যাকএন্ড সার্ভারের অনুপলব্ধতার কারণে ঘটতে পারে যা টানেল তৈরিতে বাধা দেয়

প্রক্সি রেসপন্স স্ট্যাটাস 504 সহ টানেল তৈরি করতে অস্বীকার করেছে

504 - Gateway Timeout

টানেল তৈরির সময় টাইমআউট হলে এটি ঘটতে পারে

faultstring -এ পর্যবেক্ষণ করা স্ট্যাটাস কোডের উপর নির্ভর করে, সমস্যাটি সমাধান করার জন্য আপনাকে উপযুক্ত কৌশল ব্যবহার করতে হবে। এই প্লেবুকটি ব্যাখ্যা করে কিভাবে সমস্যাটির সমাধান করতে হয় যদি আপনি ত্রুটি কোড protocol.http.ProxyTunnelCreationFailed faultstring -এ স্ট্যাটাস কোড 403 পর্যবেক্ষণ করেন।http.ProxyTunnelCreationFailed।

সম্ভাব্য কারণ

এই ত্রুটি (স্থিতি কোড 403 ) ঘটে যদি ব্যাকএন্ড সার্ভারে কোন ফায়ারওয়াল বা ACL (অ্যাক্সেস কন্ট্রোল লিস্ট) বিধিনিষেধ কনফিগার করা থাকে যা প্রক্সি সার্ভারের দ্বারা Apigee এজ এবং ব্যাকএন্ড সার্ভারের মধ্যে টানেল তৈরি হতে বাধা দেয়।

কারণ বর্ণনা সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য
প্রক্সি রেসপন্স স্ট্যাটাস 403 সহ টানেল তৈরি করতে অস্বীকার করেছে প্রক্সি সার্ভার টানেলটি তৈরি করতে অস্বীকার করে কারণ এটি Host হেডারে ব্যাকএন্ড সার্ভার হোস্ট নামের পরিবর্তে প্রক্সি সার্ভার হোস্ট নাম পায়। এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা শুধুমাত্র

সাধারণ রোগ নির্ণয়ের পদক্ষেপ

এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলির মধ্যে একটি ব্যবহার করুন:

ট্রেস টুল

ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. ট্রেস সেশন সক্ষম করুন এবং হয়:
    • ত্রুটি ঘটতে অপেক্ষা করুন, বা
    • আপনি যদি সমস্যাটি পুনরুত্পাদন করতে পারেন, তাহলে সমস্যাটি পুনরুত্পাদন করতে API কল করুন 503 Service Unavailable Proxy refused to create tunnel with response status 403
  2. সমস্ত ফ্লোইনফোস সক্ষম করা আছে তা নিশ্চিত করুন:

  3. ব্যর্থ অনুরোধগুলির একটি নির্বাচন করুন এবং ট্রেস পরীক্ষা করুন।
  4. ট্রেসের বিভিন্ন পর্যায়ে নেভিগেট করুন এবং কোথায় ব্যর্থতা ঘটেছে তা সনাক্ত করুন।
  5. আপনি ত্রুটিটি দেখতে পাবেন সাধারণত ফেজ টার্গেট রিকোয়েস্ট ফ্লো শুরু হওয়ার পর নিচের মত করে:

    নিম্নলিখিত তথ্য নোট করুন:

    ত্রুটি: Proxy refused to create tunnel with response status 403

  6. ট্রেসে AX (Analytics Data Recorded) ফেজে নেভিগেট করুন এবং এটিতে ক্লিক করুন।
  7. ফেজ বিশদ প্রতিক্রিয়া শিরোনাম বিভাগে নীচে স্ক্রোল করুন এবং নীচে দেখানো হিসাবে X-Apigee-fault-code এবং X-Apigee-fault-source এর মান নির্ধারণ করুন:

    ( বড় ছবি দেখুন )

    ( বড় ছবি দেখুন )

  8. আপনি protocol.http.ProxyTunnelCreationFailed হিসাবে X-Apigee-fault-code এবং X-Apigee-fault-source এর মান দেখতে পাবেন।http.ProxyTunnelCreationFailed এবং target যথাক্রমে, ইঙ্গিত করে যে এই ত্রুটিটি ঘটেছে কারণ প্রক্সি টানেল তৈরি ব্যর্থ হয়েছে কারণ প্রত্যাশিত হোস্ট হেডারটি পাওয়া যায়নি।

    প্রতিক্রিয়া শিরোনাম মান
    এক্স-অ্যাপিজি-ফল্ট-কোড protocol.http.ProxyTunnelCreationFailed
    এক্স-অ্যাপিজি-ফল্ট-উৎস target

এনজিআইএনএক্স

NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি HTTP 503 Service Unavailable ত্রুটি সম্পর্কে মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগগুলি ব্যবহার করতে পারেন৷
  2. NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:

    /opt/apigee/var/log/edge-router/nginx/ ORG ~ ORG . PORT# _access_log

    যেখানে: ORG , ORG , এবং PORT# প্রকৃত মান দিয়ে প্রতিস্থাপিত হয়৷

  3. ত্রুটি কোড protocol.http.ProxyTunnelCreationFailed একটি নির্দিষ্ট সময়কালে (যদি সমস্যাটি অতীতে ঘটে থাকে) সহ কোনো 503 ত্রুটি আছে কিনা বা 503 এর সাথে কোনো অনুরোধ এখনও ব্যর্থ হয়েছে কিনা তা দেখতে অনুসন্ধান করুন।
  4. আপনি যদি X-Apigee-fault-code-এর সাথে protocol.http.ProxyTunnelCreationFailed এর মানের সাথে 503 টি ত্রুটি খুঁজে পান, তাহলে X-Apigee-ফল্ট-সোর্সের মান নির্ধারণ করুন।

    NGINX অ্যাক্সেস লগ থেকে নমুনা 503 ত্রুটি:

    NGINX অ্যাক্সেস লগ থেকে উপরের নমুনা এন্ট্রিতে X- Apigee-fault-code এবং X-Apigee-fault-source এর জন্য নিম্নলিখিত মান রয়েছে:

    প্রতিক্রিয়া শিরোনাম মান
    এক্স-অ্যাপিজি-ফল্ট-কোড protocol.http.ProxyTunnelCreationFailed
    এক্স-অ্যাপিজি-ফল্ট-উৎস target

কারণ: প্রক্সি রেসপন্স স্ট্যাটাস 403 সহ টানেল তৈরি করতে অস্বীকার করেছে

রোগ নির্ণয়

  1. সাধারণ নির্ণয়ের ধাপে ব্যাখ্যা করা ট্রেস টুল বা NGINX অ্যাক্সেস লগ ব্যবহার করে 503 Service Unavailable ফল্ট কোড এবং ফল্ট উৎস নির্ধারণ করুন।
  2. ত্রুটি বার্তা পর্যালোচনা করুন এবং টানেল তৈরিতে ব্যর্থতার জন্য faultstring -এ নির্দেশিত স্ট্যাটাস কোড নির্ধারণ করুন।
  3. এই পরিস্থিতিতে, স্ট্যাটাস কোড হল 403 , যার অর্থ নিষিদ্ধ
  4. এর মানে হল যে টানেল তৈরি করার জন্য অপর্যাপ্ত অধিকার বা সুযোগ-সুবিধা নেই। এটি সাধারণত ঘটতে পারে যদি কোন ফায়ারওয়াল বা ACL (অ্যাক্সেস কন্ট্রোল লিস্ট) সীমাবদ্ধতা থাকে যা টানেল তৈরিতে বাধা দেয়।
  5. আপনার ব্যাকএন্ড সার্ভারে কনফিগার করা কোনো ফায়ারওয়াল এবং/অথবা ACL বিধিনিষেধ পর্যালোচনা করুন যা টানেল তৈরিতে বাধা দিতে পারে।
  6. ফায়ারওয়াল এবং/অথবা ACL সীমাবদ্ধতার প্রকারের উপর নির্ভর করে, আপনাকে যথাযথভাবে সমস্যাটি সমাধান করতে হবে।
  7. এই সমস্যাটি কীভাবে সমাধান এবং সমাধান করা যায় তা ব্যাখ্যা করার জন্য ফায়ারওয়াল সীমাবদ্ধতার একটি উদাহরণ নেওয়া যাক:

    দৃশ্যকল্প: ব্যাকএন্ড সার্ভারে ফায়ারওয়াল সীমাবদ্ধতা আশা করে হোস্ট হেডারে সর্বদা ব্যাকএন্ড সার্ভার হোস্ট নাম থাকা উচিত

    Apigee Edge দ্বারা পাস করা হোস্ট হেডার নির্ধারণ করতে আপনি নিম্নলিখিত উপায়গুলির মধ্যে একটি ব্যবহার করতে পারেন:

    ট্রেস

    ট্রেস ব্যবহার করে হোস্ট হেডার নির্ধারণ করতে:

    1. নিশ্চিত করুন যে faultstring রয়েছে Proxy refused to create tunnel with response status 403 ট্রেস ব্যবহার করে যা সাধারণ নির্ণয়ের ধাপে ব্যাখ্যা করা হয়েছে।
    2. টার্গেট রিকোয়েস্ট ফ্লো শুরু হওয়া ফেজটিতে নেভিগেট করুন এবং রিকোয়েস্ট হেডার পর্যালোচনা করুন
    3. অনুরোধ শিরোনাম বিভাগে হোস্ট হেডারে নির্দিষ্ট হোস্ট নামের মান যাচাই করুন।
    4. যদি হোস্ট হেডারে প্রক্সি হোস্ট নাম থাকে, তাহলে এটি এই ত্রুটির কারণ।
    5. কারণ হোস্ট হেডারে ব্যাকএন্ড সার্ভারের নাম থাকলেই অনুরোধগুলি গ্রহণ করতে ব্যাকএন্ড সার্ভারে ফায়ারওয়াল কনফিগার করা হয়।
    6. সুতরাং যখন প্রক্সি সার্ভার ব্যাকএন্ড সার্ভারের সাথে টানেল তৈরি করার চেষ্টা করে, এটি ত্রুটির সাথে ব্যর্থ হয়

      Proxy refused to create tunnel with response status 403

      নমুনা ট্রেস হোস্ট হেডারে প্রক্সি হোস্টের নাম রয়েছে

      ( বড় ছবি দেখুন )

      উপরে দেখানো নমুনা ট্রেসে, এটি দেখায় যে হোস্ট হেডারে প্রক্সি হোস্ট www.proxyserver.com . যেহেতু ব্যাকএন্ড সার্ভারে একটি ফায়ারওয়াল সীমাবদ্ধতা কনফিগার করা আছে যা হোস্ট হেডারে শুধুমাত্র ব্যাকএন্ড সার্ভারের হোস্টের নাম থাকবে বলে আশা করে, আপনি ত্রুটিটি পাবেন Proxy refused to create tunnel with response status 403

    tcpdump

    tcpdump ব্যবহার করে হোস্ট হেডার নির্ধারণ করতে

    1. Apigee Edge এর মেসেজ প্রসেসর কম্পোনেন্ট থেকে নিম্নলিখিত কমান্ডের মাধ্যমে আগত অনুরোধগুলির জন্য প্রক্সি সার্ভারে একটি tcpdump ক্যাপচার করুন:

      tcpdump -i any -s 0 host MP_IP_ADDRESS -w FILE_NAME
      

      tcpdump কমান্ড ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, tcpdump দেখুন।

    2. Wireshark টুল বা অনুরূপ টুল ব্যবহার করে tcpdump ডেটা বিশ্লেষণ করুন।
    3. এখানে Wireshark ব্যবহার করে tcpdump এর একটি নমুনা বিশ্লেষণ রয়েছে:

      ( বড় ছবি দেখুন )

    4. প্যাকেট নম্বর 13 , 14 , এবং 15 দেখায় যে মেসেজ প্রসেসর একটি ত্রিমুখী TCP হ্যান্ডশেক প্রক্রিয়ার মাধ্যমে প্রক্সি সার্ভারের সাথে সংযোগ স্থাপন করছে।
    5. প্যাকেট 16 এ, মেসেজ প্রসেসর প্রক্সি হোস্ট httpbin.org এর সাথে সংযুক্ত হয়েছে (উপরের উদাহরণে দেখানো হয়েছে)।
    6. প্যাকেট 16 নির্বাচন করুন এবং প্যাকেটের বিষয়বস্তু বিস্তারিতভাবে পরীক্ষা করুন এবং বিশেষ করে মেসেজ প্রসেসর দ্বারা প্রক্সি সার্ভারে পাঠানো হোস্ট হেডার

    7. উপরের নমুনাটি হোস্ট হেডার httpin.org দেখায়, যা প্রক্সি সার্ভারের হোস্টনাম। অতএব, যখন প্রক্সি সার্ভার উপরের হোস্ট হেডার httpin.org পাস করে ব্যাকএন্ড সার্ভারের সাথে টানেল তৈরি করার চেষ্টা করে, তখন এটি ব্যর্থ হয় ত্রুটির সাথে Proxy refused to create tunnel with response status 403

রেজোলিউশন

দৃশ্যকল্প: প্রক্সি সার্ভারে ফায়ারওয়াল সীমাবদ্ধতা আশা করে হোস্ট হেডারে সর্বদা ব্যাকএন্ড সার্ভার হোস্টনাম থাকা উচিত

যদি আপনি নিশ্চিত হন যে এই ত্রুটিটি হয়েছে কারণ ব্যাকএন্ড সার্ভারে ফায়ারওয়ালটি এমনভাবে কনফিগার করা হয়েছে যাতে এটি আশা করে যে হোস্ট হেডারে সর্বদা ব্যাকএন্ড সার্ভার হোস্টের নাম থাকা উচিত, যখন বার্তা প্রসেসর প্রক্সি সার্ভার হোস্টনাম পাঠাচ্ছে, তাহলে সমাধান করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন সমস্যা:

  1. নিম্নলিখিত উদাহরণে দেখানো হিসাবে টার্গেটএন্ডপয়েন্টে প্রপার্টি use.proxy.host.header.with.target.uri কে সত্য হিসাবে সেট করুন:

    নমুনা TargetEndpoint কনফিগারেশন:

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="use.proxy.host.header.with.target.uri">true</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>
  2. নিশ্চিত করুন যে ফরওয়ার্ড প্রক্সি সম্পর্কিত অন্যান্য বৈশিষ্ট্যগুলি নিম্নরূপ বার্তা প্রসেসরে কনফিগার করা হয়েছে:

    1. প্রতিটি বার্তা প্রসেসরের ফাইল /opt/apigee/customer/application/message-processor.properties পর্যালোচনা করুন।
    2. নিশ্চিত করুন যে নিম্নলিখিত বৈশিষ্ট্যগুলি আপনার ব্যবহারের ক্ষেত্রে বা প্রয়োজনীয়তা অনুসারে সেট করা হয়েছে:

      বৈশিষ্ট্যের জন্য নমুনা মান:

      conf_http_HTTPClient.use.proxy=true
      conf/http.properties+HTTPClient.proxy.type=HTTP
      conf/http.properties+HTTPClient.proxy.host=PROXY_SERVER_HOST_NAME
      conf/http.properties+HTTPClient.proxy.port=PORT_#
      conf/http.properties+HTTPClient.proxy.user=USERNAME
      conf/http.properties+HTTPClient.proxy.password=PASSWORD

ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে

উপরের নির্দেশাবলী অনুসরণ করার পরেও যদি সমস্যাটি থেকে যায়, তাহলে নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন এবং তারপর Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন:

আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্য প্রদান করুন:

  • ব্যর্থ অনুরোধের জন্য পরিলক্ষিত সম্পূর্ণ ত্রুটি বার্তা
  • পরিবেশের নাম
  • API প্রক্সি বান্ডেল
  • API অনুরোধের জন্য ট্রেস ফাইল
  • NGINX অ্যাক্সেস লগ

    /opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_log

    যেখানে: ORG , ENV এবং PORT# প্রকৃত মান দিয়ে প্রতিস্থাপিত হয়।

  • বার্তা প্রসেসর সিস্টেম লগ

    /opt/apigee/var/log/edge-message-processor/logs/system.log

তথ্যসূত্র