আপনি 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 সহ টানেল তৈরি করতে অস্বীকার করেছে | এটি সম্ভবত ফায়ারওয়াল বা ব্যাকএন্ড সার্ভারে কনফিগার করা ACL সীমাবদ্ধতার কারণে ঘটতে পারে যা টানেল তৈরিতে বাধা দেয়। |
প্রক্সি রেসপন্স স্ট্যাটাস 503 সহ টানেল তৈরি করতে অস্বীকার করেছে | এটি DNS সমস্যা, ফায়ারওয়াল সীমাবদ্ধতা, ব্যাকএন্ড সার্ভারের অনুপলব্ধতার কারণে ঘটতে পারে যা টানেল তৈরিতে বাধা দেয় |
প্রক্সি রেসপন্স স্ট্যাটাস 504 সহ টানেল তৈরি করতে অস্বীকার করেছে | টানেল তৈরির সময় টাইমআউট হলে এটি ঘটতে পারে |
faultstring
-এ পর্যবেক্ষণ করা স্ট্যাটাস কোডের উপর নির্ভর করে, সমস্যাটি সমাধান করার জন্য আপনাকে উপযুক্ত কৌশল ব্যবহার করতে হবে। এই প্লেবুকটি ব্যাখ্যা করে কিভাবে সমস্যাটির সমাধান করতে হয় যদি আপনি ত্রুটি কোড protocol.http.ProxyTunnelCreationFailed
faultstring
-এ স্ট্যাটাস কোড 403
পর্যবেক্ষণ করেন।http.ProxyTunnelCreationFailed।
সম্ভাব্য কারণ
এই ত্রুটি (স্থিতি কোড 403
) ঘটে যদি ব্যাকএন্ড সার্ভারে কোন ফায়ারওয়াল বা ACL (অ্যাক্সেস কন্ট্রোল লিস্ট) বিধিনিষেধ কনফিগার করা থাকে যা প্রক্সি সার্ভারের দ্বারা Apigee এজ এবং ব্যাকএন্ড সার্ভারের মধ্যে টানেল তৈরি হতে বাধা দেয়।
কারণ | বর্ণনা | সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য |
---|---|---|
প্রক্সি রেসপন্স স্ট্যাটাস 403 সহ টানেল তৈরি করতে অস্বীকার করেছে | প্রক্সি সার্ভার টানেলটি তৈরি করতে অস্বীকার করে কারণ এটি Host হেডারে ব্যাকএন্ড সার্ভার হোস্ট নামের পরিবর্তে প্রক্সি সার্ভার হোস্ট নাম পায়। | এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা শুধুমাত্র |
সাধারণ রোগ নির্ণয়ের পদক্ষেপ
এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলির মধ্যে একটি ব্যবহার করুন:
ট্রেস টুল
ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:
- ট্রেস সেশন সক্ষম করুন এবং হয়:
- ত্রুটি ঘটতে অপেক্ষা করুন, বা
- আপনি যদি সমস্যাটি পুনরুত্পাদন করতে পারেন, তাহলে সমস্যাটি পুনরুত্পাদন করতে API কল করুন
503 Service Unavailable
Proxy refused to create tunnel with response status 403
।
সমস্ত ফ্লোইনফোস সক্ষম করা আছে তা নিশ্চিত করুন:
- ব্যর্থ অনুরোধগুলির একটি নির্বাচন করুন এবং ট্রেস পরীক্ষা করুন।
- ট্রেসের বিভিন্ন পর্যায়ে নেভিগেট করুন এবং কোথায় ব্যর্থতা ঘটেছে তা সনাক্ত করুন।
আপনি ত্রুটিটি দেখতে পাবেন সাধারণত ফেজ টার্গেট রিকোয়েস্ট ফ্লো শুরু হওয়ার পর নিচের মত করে:
নিম্নলিখিত তথ্য নোট করুন:
ত্রুটি:
Proxy refused to create tunnel with response status 403
- ট্রেসে AX (Analytics Data Recorded) ফেজে নেভিগেট করুন এবং এটিতে ক্লিক করুন।
ফেজ বিশদ প্রতিক্রিয়া শিরোনাম বিভাগে নীচে স্ক্রোল করুন এবং নীচে দেখানো হিসাবে X-Apigee-fault-code এবং X-Apigee-fault-source এর মান নির্ধারণ করুন:
( বড় ছবি দেখুন )
( বড় ছবি দেখুন )
আপনি
protocol.http.ProxyTunnelCreationFailed
হিসাবে X-Apigee-fault-code এবং X-Apigee-fault-source এর মান দেখতে পাবেন।http.ProxyTunnelCreationFailed এবংtarget
যথাক্রমে, ইঙ্গিত করে যে এই ত্রুটিটি ঘটেছে কারণ প্রক্সি টানেল তৈরি ব্যর্থ হয়েছে কারণ প্রত্যাশিত হোস্ট হেডারটি পাওয়া যায়নি।প্রতিক্রিয়া শিরোনাম মান এক্স-অ্যাপিজি-ফল্ট-কোড protocol.http.ProxyTunnelCreationFailed
এক্স-অ্যাপিজি-ফল্ট-উৎস target
এনজিআইএনএক্স
NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:
- আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি HTTP
503 Service Unavailable
ত্রুটি সম্পর্কে মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগগুলি ব্যবহার করতে পারেন৷ NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:
/opt/apigee/var/log/edge-router/nginx/ ORG ~ ORG . PORT# _access_log
যেখানে: ORG , ORG , এবং PORT# প্রকৃত মান দিয়ে প্রতিস্থাপিত হয়৷
- ত্রুটি কোড
protocol.http.ProxyTunnelCreationFailed
একটি নির্দিষ্ট সময়কালে (যদি সমস্যাটি অতীতে ঘটে থাকে) সহ কোনো503
ত্রুটি আছে কিনা বা503
এর সাথে কোনো অনুরোধ এখনও ব্যর্থ হয়েছে কিনা তা দেখতে অনুসন্ধান করুন। আপনি যদি 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 সহ টানেল তৈরি করতে অস্বীকার করেছে
রোগ নির্ণয়
- সাধারণ নির্ণয়ের ধাপে ব্যাখ্যা করা ট্রেস টুল বা NGINX অ্যাক্সেস লগ ব্যবহার করে
503 Service Unavailable
ফল্ট কোড এবং ফল্ট উৎস নির্ধারণ করুন। - ত্রুটি বার্তা পর্যালোচনা করুন এবং টানেল তৈরিতে ব্যর্থতার জন্য
faultstring
-এ নির্দেশিত স্ট্যাটাস কোড নির্ধারণ করুন। - এই পরিস্থিতিতে, স্ট্যাটাস কোড হল
403
, যার অর্থ নিষিদ্ধ । - এর মানে হল যে টানেল তৈরি করার জন্য অপর্যাপ্ত অধিকার বা সুযোগ-সুবিধা নেই। এটি সাধারণত ঘটতে পারে যদি কোন ফায়ারওয়াল বা ACL (অ্যাক্সেস কন্ট্রোল লিস্ট) সীমাবদ্ধতা থাকে যা টানেল তৈরিতে বাধা দেয়।
- আপনার ব্যাকএন্ড সার্ভারে কনফিগার করা কোনো ফায়ারওয়াল এবং/অথবা ACL বিধিনিষেধ পর্যালোচনা করুন যা টানেল তৈরিতে বাধা দিতে পারে।
- ফায়ারওয়াল এবং/অথবা ACL সীমাবদ্ধতার প্রকারের উপর নির্ভর করে, আপনাকে যথাযথভাবে সমস্যাটি সমাধান করতে হবে।
এই সমস্যাটি কীভাবে সমাধান এবং সমাধান করা যায় তা ব্যাখ্যা করার জন্য ফায়ারওয়াল সীমাবদ্ধতার একটি উদাহরণ নেওয়া যাক:
দৃশ্যকল্প: ব্যাকএন্ড সার্ভারে ফায়ারওয়াল সীমাবদ্ধতা আশা করে হোস্ট হেডারে সর্বদা ব্যাকএন্ড সার্ভার হোস্ট নাম থাকা উচিত
Apigee Edge দ্বারা পাস করা হোস্ট হেডার নির্ধারণ করতে আপনি নিম্নলিখিত উপায়গুলির মধ্যে একটি ব্যবহার করতে পারেন:
ট্রেস
ট্রেস ব্যবহার করে হোস্ট হেডার নির্ধারণ করতে:
- নিশ্চিত করুন যে
faultstring
রয়েছেProxy refused to create tunnel with response status 403
ট্রেস ব্যবহার করে যা সাধারণ নির্ণয়ের ধাপে ব্যাখ্যা করা হয়েছে। - টার্গেট রিকোয়েস্ট ফ্লো শুরু হওয়া ফেজটিতে নেভিগেট করুন এবং রিকোয়েস্ট হেডার পর্যালোচনা করুন
- অনুরোধ শিরোনাম বিভাগে হোস্ট হেডারে নির্দিষ্ট হোস্ট নামের মান যাচাই করুন।
- যদি হোস্ট হেডারে প্রক্সি হোস্ট নাম থাকে, তাহলে এটি এই ত্রুটির কারণ।
- কারণ হোস্ট হেডারে ব্যাকএন্ড সার্ভারের নাম থাকলেই অনুরোধগুলি গ্রহণ করতে ব্যাকএন্ড সার্ভারে ফায়ারওয়াল কনফিগার করা হয়।
- সুতরাং যখন প্রক্সি সার্ভার ব্যাকএন্ড সার্ভারের সাথে টানেল তৈরি করার চেষ্টা করে, এটি ত্রুটির সাথে ব্যর্থ হয়
Proxy refused to create tunnel with response status 403
।নমুনা ট্রেস হোস্ট হেডারে প্রক্সি হোস্টের নাম রয়েছে
( বড় ছবি দেখুন )
উপরে দেখানো নমুনা ট্রেসে, এটি দেখায় যে হোস্ট হেডারে প্রক্সি হোস্ট
www.proxyserver.com .
যেহেতু ব্যাকএন্ড সার্ভারে একটি ফায়ারওয়াল সীমাবদ্ধতা কনফিগার করা আছে যা হোস্ট হেডারে শুধুমাত্র ব্যাকএন্ড সার্ভারের হোস্টের নাম থাকবে বলে আশা করে, আপনি ত্রুটিটি পাবেনProxy refused to create tunnel with response status 403
।
tcpdump
tcpdump ব্যবহার করে হোস্ট হেডার নির্ধারণ করতে
Apigee Edge এর মেসেজ প্রসেসর কম্পোনেন্ট থেকে নিম্নলিখিত কমান্ডের মাধ্যমে আগত অনুরোধগুলির জন্য প্রক্সি সার্ভারে একটি
tcpdump
ক্যাপচার করুন:tcpdump -i any -s 0 host MP_IP_ADDRESS -w FILE_NAME
tcpdump
কমান্ড ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, tcpdump দেখুন।- Wireshark টুল বা অনুরূপ টুল ব্যবহার করে
tcpdump
ডেটা বিশ্লেষণ করুন। এখানে Wireshark ব্যবহার করে tcpdump এর একটি নমুনা বিশ্লেষণ রয়েছে:
( বড় ছবি দেখুন )
- প্যাকেট নম্বর 13 , 14 , এবং 15 দেখায় যে মেসেজ প্রসেসর একটি ত্রিমুখী TCP হ্যান্ডশেক প্রক্রিয়ার মাধ্যমে প্রক্সি সার্ভারের সাথে সংযোগ স্থাপন করছে।
- প্যাকেট 16 এ, মেসেজ প্রসেসর প্রক্সি হোস্ট
httpbin.org
এর সাথে সংযুক্ত হয়েছে (উপরের উদাহরণে দেখানো হয়েছে)। প্যাকেট 16 নির্বাচন করুন এবং প্যাকেটের বিষয়বস্তু বিস্তারিতভাবে পরীক্ষা করুন এবং বিশেষ করে মেসেজ প্রসেসর দ্বারা প্রক্সি সার্ভারে পাঠানো হোস্ট হেডার ।
- উপরের নমুনাটি হোস্ট হেডার
httpin.org
দেখায়, যা প্রক্সি সার্ভারের হোস্টনাম। অতএব, যখন প্রক্সি সার্ভার উপরের হোস্ট হেডারhttpin.org
পাস করে ব্যাকএন্ড সার্ভারের সাথে টানেল তৈরি করার চেষ্টা করে, তখন এটি ব্যর্থ হয় ত্রুটির সাথেProxy refused to create tunnel with response status 403
।
- নিশ্চিত করুন যে
রেজোলিউশন
দৃশ্যকল্প: প্রক্সি সার্ভারে ফায়ারওয়াল সীমাবদ্ধতা আশা করে হোস্ট হেডারে সর্বদা ব্যাকএন্ড সার্ভার হোস্টনাম থাকা উচিত
যদি আপনি নিশ্চিত হন যে এই ত্রুটিটি হয়েছে কারণ ব্যাকএন্ড সার্ভারে ফায়ারওয়ালটি এমনভাবে কনফিগার করা হয়েছে যাতে এটি আশা করে যে হোস্ট হেডারে সর্বদা ব্যাকএন্ড সার্ভার হোস্টের নাম থাকা উচিত, যখন বার্তা প্রসেসর প্রক্সি সার্ভার হোস্টনাম পাঠাচ্ছে, তাহলে সমাধান করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন সমস্যা:
নিম্নলিখিত উদাহরণে দেখানো হিসাবে টার্গেটএন্ডপয়েন্টে প্রপার্টি
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>
নিশ্চিত করুন যে ফরওয়ার্ড প্রক্সি সম্পর্কিত অন্যান্য বৈশিষ্ট্যগুলি নিম্নরূপ বার্তা প্রসেসরে কনফিগার করা হয়েছে:
- প্রতিটি বার্তা প্রসেসরের ফাইল
/opt/apigee/customer/application/message-processor.properties
পর্যালোচনা করুন। নিশ্চিত করুন যে নিম্নলিখিত বৈশিষ্ট্যগুলি আপনার ব্যবহারের ক্ষেত্রে বা প্রয়োজনীয়তা অনুসারে সেট করা হয়েছে:
বৈশিষ্ট্যের জন্য নমুনা মান:
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