কিছু এনগিনেক্স বিপরীত প্রক্সি কনফিগার্স দিনে একবার কাজ বন্ধ করে দেয়


12

আমার একটি এনগিনেক্সের বিপরীত প্রক্সি রয়েছে যা বাইরের অ্যামাজন ইএলবি থেকে অভ্যন্তরীণ ইএলবিতে অনুরোধ করে।

আমার কাছে 6 টি ব্যাকএন্ড উদাহরণ রয়েছে যা অনুরোধগুলি পরিচালনা করে। সাইট-সক্ষম কনফিগারেশনগুলি দেখতে দেখতে দেখতে বিভিন্ন পোর্ট নম্বর এবং প্রক্সি_পাস রয়েছে। অন্য সব কিছুই অভিন্ন:

server {
    listen 3000;
    location / {
            proxy_pass http://internal-prod732r8-PrivateE-1GJ070M0745TT-348518554.eu-west-1.elb.amazonaws.com:3000;
            include /etc/nginx/proxy.conf;
    }

}

প্রায় প্রতি 24 ঘন্টা একবারে কনফিগারেশনের একটি কাজ বন্ধ করে দেয়। অন্যান্য সমস্ত প্রক্সি ঠিকঠাক কাজ করে। আমি nginx পুনরায় চালু করা হলে সমস্ত কনফিগারেশন আবার কাজ করে। ত্রুটি.লগের কিছুই নেই, অ্যাক্সেস লগ, সিসলগ বা ডেমেসেজে কোনও অদ্ভুত কিছুই নেই।

এটি কি কিছু জানা আছে? আমি কি আমার প্রক্সি কনফিগারেশনে কিছু ভুল করেছি? আমি দেখতে পারেন যে অন্য কোনও লগ আছে?



উত্তর:


22

এই প্রশ্নের উত্তর হ'ল ELB গুলি কখনও কখনও আইপি অ্যাড্রেসগুলি পরিবর্তন করে এবং এনজিঙ্ক্স শুরু করার সময় নামটির সমাধান করে।

এটি ঠিক করতে আপনার ভিপিসিতে সর্বদা 0.2 এ ডিএনএস সার্ভার থাকে। সুতরাং স্থানীয় আইপি সিডিআর যদি 10.0.0.0/16 হয় তবে ডিএনএস সার্ভারটি 10.0.0.2 এ থাকে।

এটি nginx কনফিগারেশনে যুক্ত করুন।

resolver 10.0.0.2 valid=10s;

প্রক্সিপাসকে ভেরিয়েবল হিসাবে সংজ্ঞায়িত করা দরকার অন্যথায় এনজিনেক্স কেবল একবার এটি সমাধান করবে। সুতরাং উপরের কনফিগারেশনের ভিত্তিতে এটি সঠিক কনফিগারেশন:

server {
    listen 3000;
    location / {
            resolver 10.0.0.2 valid=10s;
            set $backend "http://internal-prod732r8-PrivateE-1GJ070M0745TT-348518554.eu-west-1.elb.amazonaws.com:3000"
            proxy_pass $backend;
            include /etc/nginx/proxy.conf;
    }
}

কেউ কি জানেন যে এনগিনেক্সের কোন সংস্করণ প্রক্সি_পাস সেটিংয়ে ভেরিয়েবল সমর্থন করে? আমি ইলাস্টিক beanstalk (nginx সংস্করণ 1.6.2) এর চেষ্টা করছি এবং এটি পরিবর্তনশীল গ্রহণ করতে যাহাই হউক না কেন আমি এটা করা চায় না।
স্টিফেন সি

এর জন্য আপনাকে ধন্যবাদ, প্রায় এক মাস ধরে আক্ষরিক অর্থে আমাদের পাগল করে চলেছে!
জিম.আর

এনজিঙ্ক্স ব্লকের এই নিবন্ধটিও এই কনফিগারেশনটির পুনরাবৃত্তি করে। nginx.com/blog/dns-service-discovery-nginx-plus
মরগান ক্রিশ্চিয়ানসন

1

যদি আপনার প্রক্সি_পাসটি আপনার উদাহরণ শো ( http://amazonaws.com ) এর মতো কোনও URL- এ সরাসরি না পৌঁছে তবে পরিবর্তে এটির মতো প্রক্সি আপস্ট্রিম ফার্মে চলে যায়:

upstream my_upstream {
 server1 127.0.0.1:1337;
 server2 127.0.0.1:1338; 
}
location / {
 proxy_pass         http://my_upstream;
}

তারপরে আপনি প্রবাহের সাময়িকভাবে ব্যর্থতার বিষয়ে কম উদ্বিগ্ন হবেন। কারণ তারা সবাই একই কাজ করবে। যদি কেউ উত্তর দিতে ব্যর্থ হয়, তবে পরেরটি সেই প্রতিক্রিয়াটির জন্য প্রক্সী হবে। মনের শান্তি.

এনগিনেক্স এক্স সেকেন্ডের স্বয়ংক্রিয়তার জন্য একটি ব্যর্থ মেশিন এড়িয়ে যাবে sk যতক্ষণ না আপনি এটি মেরামত করেন, বা এটি নিজেই ফিরে না আসা পর্যন্ত। ( http://wiki.nginx.org/HttpUpstreamModule )

সুতরাং আপনার বাধার কারণ যাই হোক না কেন, একটি উজানের খামারে তাদের বিতরণ করে, এটি একটি সহজ সেটআপে রূপান্তরিত করে।


আপনার উত্তর দেওয়ার জন্য ধন্যবাদ! আশ্চর্যের বিষয় হ'ল আমি ব্যাকএন্ডের উদাহরণটিতে সরাসরি অনুরোধ করতে পারি তবে এনজিএনএক্সের মাধ্যমে নয়। আমি যদি কেবল এনজিন্স পুনরায় চালু করি তবে অনুরোধটি আবার প্রক্সড হয়। যেহেতু এটি ইতিমধ্যে উত্পাদনের পরিবেশে রয়েছে তাই কনফিগারগুলির একটি কেন "আনলোড করা" বলে মনে হচ্ছে বা পর্দার আড়ালে এনজিঙ্কস আসলে কী করে তা আমি কীভাবে জানতে পারি তা সত্যিই আমি জানতে চাই।
ব্যবহারকারী 202172

আপনি তখন আরও এনগিনেক্স লগিং তথ্য অনুসন্ধান করতে চাইতে পারেন। এটি এমন একটি সমস্যা যেখানে আপনার মত কেউ "মধ্যবর্তী সমস্যাগুলি [...] আমি প্রক্সি করছি" স্ট্যাকওভারফ্লো.com/ প্রশ্নগুলি / 14৯১7979২২/২ আরও প্রাসঙ্গিক লগগুলি টানার একটি উপায় বর্ণনা করেছেন tried আশা করি এটা সাহায্য করবে.
ব্যবহারকারী18099
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.