এনগিনেক্সের সাহায্যে একটি সাবপথ একটি বাহ্যিক হোস্টে পুনর্নির্দেশ করুন


14

আমাকে এনগিনেক্সে একটি সহজ সরল মানচিত্র তৈরি করতে হবে যা একই সাবনেটে অবস্থিত অন্য সার্ভারে একটি সাবপথ পুনর্নির্দেশ করে।

  • এনগিনেক্স সার্ভার: 192.168.0.2
  • টমক্যাট সার্ভার: 192.168.0.3:8443

আমি এটি সার্ভার বিভাগে রাখার চেষ্টা করেছি

    location /tomcatapi/ {
        rewrite /tomcatapi/(.*) $1 break;
        proxy_pass http://192.168.0.3:8443;
    }

তবে আমি যে সমস্তই অ্যাক্সেস করি http://www.myservice.com/tomcatapi/ একটি 500 টি ত্রুটি পৃষ্ঠা এবং এনজিএনএক্স লগ ফাইলে আমার এই ত্রুটি রয়েছে:

    the rewritten URI has a zero length

এই কনফিডে আমি কী মিস করছি?

উত্তর:


13

আসুন আপনার পুনর্লিখনের রেখাটি দেখুন:

rewrite /tomcatapi/(.*) $1 break;

আপনি বন্ধনীতে বিট নিচ্ছেন (অর্থাত্‍ সমস্ত কিছু /tomcatapi/), যা বরাদ্দ হয়ে যায় $1, এবং এটি আপনার পুনর্লিখিত ইউআরআইয়ের একমাত্র বিষয়বস্তু হিসাবে ব্যবহার করে।

আপনার উদাহরণে, এর পরে কিছুই নেই /tomcatapi/, সুতরাং পুনর্লিখনটি খালি শেষ হয় এবং এনজিনেক্স এটি শোনাচ্ছে।

আপনি যদি পুনর্লিখনের নিয়মটি এতে পরিবর্তন করেন

rewrite /tomcatapi/(.*) /$1 break;

তারপরে আপনি সর্বদা কমপক্ষে /পুনর্লিখনের আউটপুটটিতে শেষ হবেন ।


আপনার জবাব দেওয়ার জন্য ধন্যবাদ, যাইহোক আমি "/" যুক্ত করেছি তবে এখন ইউআরএলটি অ্যাক্সেস করে ব্রাউজারটি লোডিং অবস্থায় আটকে আছে এবং লগ ফাইলে আমি এখন অন্যর একটি ত্রুটি দেখতে পেয়েছি: উজান থেকে প্রতিক্রিয়া শিরোনাম পড়ার সময় আপস্ট্রিম কোনও বৈধ HTTP / 1.0 শিরোনাম প্রেরণ করে নি
carlo.polisini

আপনার টমক্যাট সার্ভারে লগগুলি কী বলে?
ফ্লপ করুন

আমি ত্রুটিটি পেয়েছি, ভুলটি হ'ল অ্যাপটি কেবলমাত্র https এ পাওয়া যায় এবং HTTP তে পাওয়া যায় না! সুতরাং সিনট্যাক্সটি আপনার সংশোধন করার পরে সঠিক ছিল, এটির কাজ করার জন্য কেবলমাত্র https এর পরিবর্তে http প্রতিস্থাপন করা হয়েছিল।
carlo.polisini
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.