কি হচ্ছে?
আপনার অবশ্যই ডেবিয়ান বা উবুন্টু ব্যবহার করা উচিত, যেহেতু http://nginx.org/packages/ থেকে এনজিনেক্সের প্রবাহ প্যাকেজিং দ্বারা অশুভ sites-available
/ sites-enabled
যুক্তি ব্যবহার করা হয় না ।
উভয় ক্ষেত্রেই, উভয়ই মানক include
নির্দেশিকার সহায়তায় কনফিগারেশন কনভেনশন হিসাবে প্রয়োগ করা হয় /etc/nginx/nginx.conf
।
/etc/nginx/nginx.conf
এনজিএনএক্স.আরজি থেকে এনজিন্সের অফিশিয়াল আপস্ট্রিম প্যাকেজটির একটি স্নিপেট এখানে রয়েছে:
http {
…
include /etc/nginx/conf.d/*.conf;
}
এখানে /etc/nginx/nginx.conf
দেবিয়ান / উবুন্টুর একটি স্নিপেট রয়েছে :
http {
…
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
সুতরাং, এনজিআইএনএক্সের দৃষ্টিকোণ থেকে, কেবলমাত্র তফাতটি হ'ল ফাইলগুলি conf.d
শীঘ্রই প্রক্রিয়া করা হবে এবং যেমন, আপনার যদি এমন কনফিগারেশন রয়েছে যা নিঃশব্দে একে অপরের সাথে বিরোধ করে, তবে সেই ফাইলগুলি conf.d
সেগুলির মধ্যে অগ্রাধিকার নিতে পারে sites-enabled
।
সেরা অনুশীলন হয় conf.d
।
আপনার ব্যবহার করা উচিত /etc/nginx/conf.d
, কারণ এটি একটি আদর্শ সম্মেলন, এবং যে কোনও জায়গায় কাজ করা উচিত।
আপনার যদি কোনও সাইট নিষ্ক্রিয় করার দরকার হয় তবে কেবল ফাইল নামটির পুনরায় নামকরণ করুন এর জন্য .conf
প্রত্যয়, খুব সহজ, সরল ও ত্রুটি-প্রমাণ নেই:
sudo mv -i /etc/nginx/conf.d/default.conf{,.off}
অথবা কোনও সাইট সক্ষম করার জন্য বিপরীত :
sudo mv -i /etc/nginx/conf.d/example.com.conf{.disabled,}
sites-available
এবং sites-enabled
সমস্ত ব্যয় এড়ানো ।
আমি একেবারে কোন কারণ দেখতে ব্যবহার করা sites-available
/ sites-enabled
:
কিছু লোক উল্লিখিত হয়েছে nginx_ensite
এবং nginx_dissite
স্ক্রিপ্টগুলি - এই স্ক্রিপ্টগুলির নামগুলি এই পরাজয়ের বাকি অংশগুলির চেয়ে আরও খারাপ - তবে এই লিপিগুলিও কোথাও পাওয়া যায় নি - nginx
এমনকি তারা প্যাকেজটি থেকে ডেবিয়ানে অনুপস্থিত রয়েছে (এবং সম্ভবত উবুন্টুতেও) , এবং তাদের নিজস্ব প্যাকেজের মধ্যে উপস্থিত নেই, হয়, প্লাস, কেবলমাত্র সরানো এবং / অথবা দুটি ডিরেক্টরিগুলির মধ্যে ফাইলগুলি লিঙ্ক করার জন্য আপনার কি সত্যিই একটি সম্পূর্ণ অ-মানক তৃতীয় পক্ষের স্ক্রিপ্টের প্রয়োজন?!
এবং যদি আপনি স্ক্রিপ্টগুলি ব্যবহার করেন না (যা আসলে উপরে একটি স্মার্ট পছন্দ) তবে আপনি কীভাবে সাইটগুলি পরিচালনা করবেন তা নিয়ে একটি সমস্যা আসে:
- আপনার কাছ থেকে প্রতীকী লিঙ্ক তৈরি না
sites-available
করার জন্য sites-enabled
?
- ফাইলগুলি কপি করবেন?
- ফাইলগুলি সরান?
- জায়গায় জায়গায় ফাইলগুলি সম্পাদনা করবেন
sites-enabled
?
উপরের অংশটিকে কিছুটা ছোট ছোট সমস্যার সমাধান হতে পারে, যতক্ষণ না বেশ কয়েক জন লোক সিস্টেম পরিচালনা করা শুরু করে, বা আপনি যতক্ষণ না কোনও দ্রুত সিদ্ধান্ত নেবেন, কেবল কয়েক মাস বা কয়েক বছর ধরে ভুলে যাবেন না ...
যা আমাদের এনেছে:
এটি থেকে কোনও ফাইল সরানো নিরাপদ sites-enabled
? এটি কি নরম লিঙ্ক? একটি শক্ত লিঙ্ক? নাকি কনফিগারেশনের একমাত্র অনুলিপি? কনফিগারেশন নরকের একটি প্রধান উদাহরণ।
কোন সাইটগুলি অক্ষম করা হয়েছে? (এর সাথে conf.d
, .conf
- find /etc/nginx/conf.d -not -name "*.conf"
বা ব্যবহারের শেষ হয় না এমন ফাইলগুলির জন্য কেবল একটি বিপরীতমুখী অনুসন্ধান করুন grep -v
))
শুধু উপরের সব, কিন্তু মনে রাখবেন নির্দিষ্ট include
Debian / Ubuntu- দ্বারা ব্যবহৃত নির্দেশ - /etc/nginx/sites-enabled/*
- কোনো ফাইলের নাম প্রত্যয় জন্য নির্দিষ্ট করা sites-enabled
, জন্য অসদৃশ conf.d
।
- এর মানে হল এই যে যদি এক দিন আপনি দ্রুত একটি ফাইল বা দুই মধ্যে সম্পাদনা করার সিদ্ধান্ত নেন হয়
/etc/nginx/sites-enabled
আপনার, আর emacs
একটি ব্যাকআপ ফাইল তৈরি করে মত default~
, তারপর, হঠাৎ, আপনি উভয় আছে default
এবং default~
সক্রিয় কনফিগারেশন, যা ব্যবহার নির্দেশনা নির্ভর করে, এমনকি হতে পারে না অন্তর্ভুক্ত আপনার কোনও সতর্কতা রয়েছে, এবং দীর্ঘায়িত ডিবাগিং সেশনটি ঘটবে। (হ্যাঁ, এটি আমার সাথে ঘটেছিল; এটি হ্যাকাথনের সময় হয়েছিল এবং আমার বিভ্রান্তি কেন কাজ করছে না তা নিয়ে আমি পুরোপুরি বিস্মিত হয়েছিলাম।)
সুতরাং, আমি নিশ্চিত যে sites-enabled
শুদ্ধ মন্দ!
www-data
একটি পৃথক বিষয়। বেশিরভাগ অপারেটিং সিস্টেমগুলি পৃথক ব্যবহারকারীকে নিম্ন অনুমোদনের সাথে সংজ্ঞায়িত করে যে প্রক্রিয়াটি পোর্ট 80 কে রুট হিসাবে আবদ্ধ করার পরে চলতে পারে। এটি কনফিগার ফাইলে সংজ্ঞায়িত করা হয়েছে। সেখান থেকে প্রাথমিক সুরক্ষা অনুশীলনগুলি প্রয়োগ করুন; ব্যবহারকারীকে এমন কোনও কিছুতে লিখতে দেবেন না যা ওয়েবসার্ভারকে লেখার দরকার নেই, অন্য ব্যবহারকারীদের যদি ইচ্ছাকৃতভাবে না লিখেন তবে ফাইলগুলিতে লিখতে দেবেন না।