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


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

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

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


95
2018-04-11 17:13


উত্স


কমান্ড লাইন আদেশ হতে বোঝানো হয়? আমি যে কেউ উদ্ধৃতি মত একটি সম্পূর্ণ sudo কমান্ড মোড়ানো দেখা যায় না, এটা প্রয়োজন হতে পারে না। - brianmearns
শুধু একটি সাধারণ মন্তব্য: আমার মনে হয় স্ট্যান্ডার্ড / প্রস্তাবিত অনুশীলনটি আপনার সাইটের কনফিগারেশনের জন্য একটি নরম / প্রতীকী লিঙ্ক তৈরি করে sites-enabled, এটা অনুলিপি না। আপনার নির্দিষ্ট সমস্যা সম্পর্কিত নয়, তবে আপনি এটি দেখতে চাইতে পারেন। - brianmearns
আপনি একটি ডাউনটাইম সম্মুখীন করা উচিত নয়। kill HUP Nginx একটি graceful পুনরায় লোড করার উপায়। - Jonathan Vanasco


উত্তর:


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

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

কখনও কখনও আপনি সঙ্গে প্রিন্ট করতে চান sudo 


155
2018-04-11 17:24



উভয় প্রশ্ন ঠিক কি প্রশ্ন করা উচিত: পাঠান SIGHUP nginx মাস্টার প্রক্রিয়া থেকে। একটি পার্থক্য হতে হবে না। nginx.org/en/docs/control.html - Gnarfoz
যখন আমি CentOS এ কমান্ডটি ইস্যু করি তখন এটি "ব্যবহার /etc/init.d/nginx (শুরু করুন ... স্টপ ... পুনঃসূচনা করুন ... পুনরায় লোড করুন)" বলছে। এবং এটি ঠিকভাবে আমি কীভাবে ব্যবহার করেছি। ফাইল /init.d/nginx ফাইলের মধ্যে আমি kill-hup খুঁজে পেয়েছি cat $PIDFILE || echo-n "পুনরায় লোড করা যাবে না" - mashup
আপনি পার্থক্য কি জানেন service nginx reloadএবং nginx -s reload? যদি আমি আগে রান করি, আমি এই আউটপুটটি পাই: Reloading nginx configuration: nginx., কিন্তু আমার পরিবর্তন আপডেট করা হয় না। আমি পরের রান, আমি আউটপুট না, কিন্তু আমার পরিবর্তন প্রতিফলিত হয়। - Ryan Quinn
আমি শুধু একটি যোগ করার পরে এই চেষ্টা log_not_found নির্দেশিকা কিন্তু আমি এটা কাজ পেতে পেতে একটি পুনর্সূচনা করতে হবে যে পাওয়া যায় নি। আমি পুনরায় লোডিং সব নির্দেশাবলীর জন্য কাজ করে না? - mydoghasworms


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

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


57
2017-07-27 13:46



অবশেষে, একটি কমান্ড যা ডেবিয়ান জেসিতে কাজ করে। - danger89
এটি একটি ভাল উপায়। কারণ আপনার সার্ভার না নিচে আপনার কনফিগারেশন ত্রুটি আছে (শুধু এই ক্ষেত্রে ত্রুটি দেখায়)। - Mir-Ismaili


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

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

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


8
2018-06-22 16:58





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

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


2
2018-04-11 17:24



যদিও এটি সরাসরি প্রশ্নের উত্তর দেয় না, এটি অবশ্যই একটি সর্বোত্তম অনুশীলন পদ্ধতি যা সাধারণভাবে ডাউনটাইম এড়াতে অনুসরণ করার জন্য অপারেটিং সিস্টেমটি স্মার্ট হবে। - Andrew M.
Nginx কিভাবে বিভিন্ন সংকেত পরিচালনা করে তার বিবরণ: nginx.org/en/docs/control.html - Gnarfoz