এনগিনেক্স কোন পতাকাটি সংকলিত হয়েছিল তা আমি কীভাবে দেখতে পারি?


227

এনজিএনএক্স ইনস্টলেশনতে কোন মডিউল যুক্ত করা হয়েছে তা আমি কীভাবে পরীক্ষা করতে পারি?


7
এটি বলার আর একটি উপায় হ'ল "আমি কীভাবে দেখতে পাব যে এনগিনেক্স কোন পতাকাটি সংকলিত হয়েছিল?" সন্ধানযোগ্যতা বাড়াতে কেবল এটি যুক্ত করতে চেয়েছিলেন।
নাথান লং

উত্তর:


291

nginx -Vসমস্ত কনফিগার মডিউল তালিকাভুক্ত করা হবে। স্পষ্টভাবে কোনও সক্ষম / লোড কমান্ড নেই।


8
নুবসের জন্য দ্রষ্টব্য: মূল ব্যবহারকারী হিসাবে লগইন না করা থাকলে কমান্ডটি হবেsudo nginx -V
its_me

4
আমার sudoউবুন্টু 14.04
আসফান্দ কাজী

5
দয়া করে নোট করুন যে এই পরামিতিটি কেস সংবেদনশীল। আপনি যদি লোয়ার কেস "-v" ব্যবহার করেন তবে আপনি কেবল সংস্করণ নম্বর পাবেন। আপার কেস "-ভি" আপনাকে এনগিনেক্স বাইনারি সংকলনের জন্য ব্যবহৃত সমস্ত মডিউলগুলির তালিকা সহ সম্পূর্ণ কনফিগারেশন দেয়।
ইলিডান

1
দেখে মনে হচ্ছে কিছু সিস্টেমের মধ্যে $PATHঅ-সুপারিউসার্সের জন্য সঠিকভাবে সেট না থাকা, সমস্ত sbinডিরেক্টরি বাদ দিয়ে দেওয়া যেতে পারে, সুতরাং আপনাকে ডেমনের পুরো পথটি নির্দিষ্ট করতে হবে (যেমন, /usr/sbin/nginx -V), বা সত্যই ব্যবহার করতে পারেন sudo
সিএনটি

@its_me ... চালানোর জন্য আপনার সম্ভবত সুডোর দরকার নেইnginx -V
কারসন রেইঙ্ক

64

ডিফ-সক্ষম ওয়ান-লাইনার:

2>&1 nginx -V | tr -- - '\n' | grep _module

দুটি পরিবেশের তুলনা করার জন্য সুবিধাজনক:

lsmodn="2>&1 nginx -V | tr -- - '\n' | grep _module"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)

সম্পাদনা করুন:

ধন্যবাদ, রোমান নেওয়াজা, সঠিকভাবে নির্দেশ করার জন্য যে এতে --withoutমডিউল সংকলন পতাকা রয়েছে। আমি --withoutপতাকা ব্যবহার করছি না এবং কেবলমাত্র মডিউল তালিকা পাওয়ার দিকে মনোনিবেশ করেছি, তাই আমি এটি ধরিনি; ওয়ান-লাইনারটিকে 2 টি ইনস্টলেশনের মধ্যে পৃথক পতাকা সংকলন করতে সহায়তা করার জন্য এটি পরিবর্তন করা যেতে পারে:

2>&1 nginx -V | tr ' '  '\n'

যা একই:

2>&1 nginx -V | xargs -n1

সম্ভবত পাইপও যে এর মাধ্যমে sortসংকলিত পতাকাগুলির আইডিসিঙ্ক্র্যাটিক ক্রমকে স্বাভাবিক করার জন্য এবং trআবার অ্যাসাইনমেন্টকে ডিফ-সক্ষম লাইনে ভাগ করে। সর্বশেষ ফলাফল:

lsmodn="2>&1 nginx -V | xargs -n1 | sort | tr = '\n'"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)

sortউভয় দূরবর্তী হোস্টগুলিতে (যেমন তারা জিএনইউ বা বিএসডি উভয়) একই আচরণ করলে এটি কাজ করে। আপনি যদি লিনাক্সকে বিএসডি (ম্যাক ওএস এক্স) এর সাথে তুলনা করছেন, কেবল | sort | tr = '\n'টুকরোটি lsmodnস্থানীয় শেল থেকে সরিয়ে ফেলুন যেখানে sortসামঞ্জস্য থাকবে:

lsmodn="2>&1 nginx -V | xargs -n1"
diff -y <(ssh linux eval $lsmodn | sort | tr = '\n') <(ssh macosx eval $lsmodn  | sort | tr = '\n')

মেসিয়ার, তবে এটি কাজ করে।


2
2>&1 nginx -V | tr -- - '\n' | grep _moduleকমান্ডটি সম্পূর্ণরূপে ভুল হিসাবে এটি তালিকাভুক্ত- * বিকল্প হিসাবে ইনস্টল করা হয়েছে!
রোমান নেওয়াজা

দুর্দান্ত উত্তর আগ্রহের বাইরে কেন আপনি 2> & 1 টি সামনে রাখেন। আমি যা দেখেছি তা আরও অস্বাভাবিক?
ক্যাভালকেড

@ ম্যাটট্যাগটি এটি ব্যবহার না করা অবধি কেবল সামনেই রয়েছে। তারপরে এটি কোনও কমান্ডের শেষে।
কুমারশ

3
  • nginx -Vকমান্ড (উপরের কেস ভী) সকল মডিউল, পাশাপাশি অন্যান্য কম্পাইল-টাইম অপশন তালিকা হবে:

    %nginx -V nginx version: nginx/1.2.2 built by gcc 4.2.1 20070719 TLS SNI support enabled configure arguments: --prefix=/var/www --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-log-path=logs/access.log --error-log-path=logs/error.log --http-client-body-temp-path=/var/www/cache/client_body_temp --http-proxy-temp-path=/var/www/cache/proxy_temp --http-fastcgi-temp-path=/var/www/cache/fastcgi_temp --http-scgi-temp-path=/var/www/cache/scgi_temp --http-uwsgi-temp-path=/var/www/cache/uwsgi_temp --user=www --group=www --with-http_gzip_static_module --with-http_ssl_module --with-http_stub_status_module --with-ipv6 --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module %

    মনে রাখবেন যে sudoএই কমান্ডের জন্য কোনও প্রয়োজন নেই , কারণ সুপারভাইজার শক্তিগুলি কেবল নীগেন পোর্টগুলি খোলার জন্য IPPORT_RESERVED(যেমন, 1024 এর নীচে পোর্ট) এবং / অথবা লেখার জন্য কিছু লগ-ফাইলের প্রয়োজন হবে।

    যাইহোক, আপনার $PATHসেটিংসের উপর নির্ভর করে , আপনাকে হয় পুরো পাথ নির্দিষ্টকরণের প্রয়োজন হতে পারে - যেমন /usr/sbin/nginx -V, বা sudoযথাযথ /sbin/ডিরেক্টরিটি অন্তর্ভুক্ত করার জন্য ব্যবহার করতে পারেন $PATH

  • নতুন এনগিনেক্স রিলিজ দিয়ে শুরু হচ্ছে - যেহেতু nginx 1.9.11(ফেব্রুয়ারী ২০১)) - গতিশীলভাবে লোডযোগ্য মডিউলগুলি এখন সমর্থিতও - http://nginx.org/r/load_module - load_moduleনির্দেশকের সহায়তায় ।


1

nginx -V সমস্ত মডিউল প্রদর্শন করে না, এটি আমার জন্য প্রায় 20 টি মডিউল প্রদর্শন করে।

আমি strings /usr/sbin/nginx|grep _module|grep -v configure| sortআমার এনজিএনএক্সে সমস্ত 200+ মডিউল তালিকাভুক্ত ব্যবহার করি।

আমি চেষ্টাও করেছিলাম objdumpতবে দেখে মনে হচ্ছে আমার ইনস্টলেশনটিতে এনগিনেক্সের বাইনারি ছিনিয়ে আছে।

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