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


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.