ডাউনটাইম ছাড়াই Nginx কনফিগারেশন পুনরায় লোড করুন


122

আমি বিপরীত প্রক্সি হিসাবে nginx ব্যবহার করি। আমি যখনই এর ব্যবহার করে কনফিগারটি আপডেট করি

sudo "cp -r #{nginx_config_path}* /etc/nginx/sites-enabled/"
sudo "kill -s HUP `cat /var/run/nginx.pid`"

আমি একটি সংক্ষিপ্ত ডাউনটাইমের মুখোমুখি। আমি কীভাবে এড়াতে পারি?


1
সেগুলি কি কমান্ড লাইন কমান্ড হতে বোঝায়? আমি কখনও কাউকে এর মতো উদ্ধৃতিতে একটি পুরো সুডো কমান্ড মোড়ানো দেখিনি, এটি প্রয়োজনও হতে পারে না।
ব্রায়ানমার্ন

4
কেবল একটি সাধারণ মন্তব্য: আমি মনে করি যে মানক / প্রস্তাবিত অনুশীলনটি আপনার সাইটের কনফিগারেশনের জন্য sites-enabledকোনও নকল নয়, এর অধীনে একটি নরম / প্রতীকী লিঙ্ক তৈরি করছে। আপনার নির্দিষ্ট সমস্যার সাথে সম্পর্কিত নয়, তবে আপনি এটি সন্ধান করতে পারেন may
ব্রায়ারম্যান

1
আপনার ডাউনটাইমের মুখোমুখি হওয়া উচিত নয়। kill HUPএনজিএনএক্সে একটি কৌতূহলী পুনরায় লোড করার উপায়।
জোনাথন ভানাসকো

উত্তর:


181

চালান service nginx reloadবা/etc/init.d/nginx reload

এটি ডাউনটাইম ছাড়াই কনফিগারেশনের একটি গরম পুনরায় লোড করবে। যদি আপনার কাছে অনুরোধগুলি মুলতুবি থাকে, তবে সেখানে দীর্ঘকালীন এনজিনেক্স প্রক্রিয়া থাকবে যা মারা যাওয়ার আগে সেই সংযোগগুলি পরিচালনা করবে, সুতরাং এটি কনফিগারগুলি পুনরায় লোড করার জন্য একটি চূড়ান্ত উপায় way

কখনও কখনও আপনি প্রিপেন্ড করতে চাইবেন sudo


10
এই দু'জনেরইই প্রশ্নটি ঠিক যেমনটি করা উচিত: SIGHUPএনজিনেক্স মাস্টার প্রক্রিয়াতে প্রেরণ করুন । কোনও পার্থক্য থাকা উচিত নয়। nginx.org/en/docs/control.html
Gnarfoz

আমি যখন সেন্টোস-এ কমান্ডটি জারি করি তখন এটি "ব্যবহার /etc/init.d/nginx (স্টার্ট..স্টপ ... পুনরায় চালু করুন ... পুনরায় লোড)" বলতে থাকে এবং আমি ঠিক এটি ব্যবহার করেছিলাম। /Init.d/nginx ফাইলের মধ্যে আমি হত্যার -এইচপি cat $PIDFILE|| প্রতিধ্বনি "পুনরায় লোড করতে পারে না"
ম্যাসআপ

1
আপনি কি জানেন service nginx reloadএবং এর মধ্যে পার্থক্য কী nginx -s reload? আমি যদি প্রাক্তনটি চালনা করি তবে আমি এই আউটপুটটি পাই: Reloading nginx configuration: nginx.তবে আমার পরিবর্তনগুলি আপডেট হয় না। আমি যদি পরবর্তীটি চালনা করি তবে আমি কোনও আউটপুট পাই না, তবে আমার পরিবর্তনগুলি প্রতিফলিত হয়।
রায়ান কুইন

আমি কেবল একটি log_not_foundনির্দেশিকা যুক্ত করার পরে এটি চেষ্টা করেছিলাম কিন্তু দেখা গেছে যে এটি আসলে কাজ করার জন্য আমাকে পুনরায় চালু করতে হয়েছিল। আমার ধারণা পুনরায় লোডিং সমস্ত নির্দেশের জন্য কাজ করে না?
mydoghasworms

81

চালান /usr/sbin/nginx -s reload

আরও কমান্ড লাইন বিকল্পের জন্য http://wiki.nginx.org/CommandLine দেখুন ।


অবশেষে, একটি কমান্ড যা ডেবিয়ান জেসিতে কাজ করে।
বিপদ 89

1
এটি একটি ভাল উপায়। কারণ আপনার কনফিগারেশনে ত্রুটি থাকলে আপনার সার্ভারটি ডাউন হয় না (কেবলমাত্র এই ক্ষেত্রে ত্রুটিগুলি দেখায়)।
মীর-ইসমাইলি

যদি nginx ডিফল্ট পিড ডিফল্ট স্থানে না থাকে তবে '-p' দরকার। অর্থাত: `/ অপ্ট / গিতল্যাব / এম্বেড / এসবিন / এনগিনেক্স
এস

9

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

অনুযায়ী http://nginx.org/docs/control.html#reconfiguration , পাঠানোর HUPnginx সংকেত নিশ্চিত যে এটা একটা সুতনু পুনর্সূচনা সঞ্চালিত করে তোলে, এবং, যদি কনফিগারেশন ফাইল ভুল, পুরো প্রক্রিয়া পরিত্যক্ত হয়, এবং আপনি ' HUPসিগন্যালটি প্রেরণের আগে যেমন Nginx রেখে গেছে । কোনও পর্যায়ে কোনও ডাউনটাইম সম্ভব হওয়া উচিত নয়।

কনফিগারেশন ফাইলটি পুনরায় পড়ার জন্য এনগিনেক্সের জন্য, একটি HUP সংকেত মাস্টার প্রসেসে প্রেরণ করা উচিত। মাস্টার প্রক্রিয়া প্রথমে সিনট্যাক্সের বৈধতা পরীক্ষা করে, তারপরে নতুন কনফিগারেশন প্রয়োগ করার চেষ্টা করে, অর্থাৎ লগ ফাইল এবং নতুন শোনার সকেট খুলতে। যদি এটি ব্যর্থ হয় তবে এটি পরিবর্তনগুলি ফিরিয়ে আনবে এবং পুরানো কনফিগারেশন সহ কাজ চালিয়ে যাবে।


2

সাধারণত, কোনও পরিষেবার পুনরায় লোড কনফিগারেশন ফাইল চলমান পরিষেবাকে প্রভাবিত করে না। তবে এটি কীভাবে SIGHUPসংকেত প্রক্রিয়াজাত হয় তার উপর নির্ভর করে ।

যদি কোনও নির্দিষ্ট পরিষেবাদি পুনরায় লোডের সময় ডাউনটাইম অনুভব করে তবে লোড ব্যালেন্সার ব্যবহার করে একাধিক সার্ভারে একই পরিষেবাটি চালনা করে এটি নিষ্ক্রিয় করা যেতে পারে। এই ক্ষেত্রে, আপনি একবারে একটি সার্ভার নিতে পারেন এবং এটিকে পুনরায় লোড / পুনঃসূচনা করতে পারেন। তারপরে, এটি ঠিক আছে তা নিশ্চিত হওয়ার পরে এটি পুনরায় যুক্ত করা যেতে পারে।


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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.