nginx অবস্থান পরিবর্তনশীল


37

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

server_name php.domain.com;
root /srv/web/vhosts/php/web;
error_log /srv/web/vhosts/php/logs/error.log;
access_log /srv/web/vhosts/php/logs/access.log;

আমি যা অর্জন করতে চাই তা হ'ল একটি ভেরিয়েবল সেট করা (এই ক্ষেত্রে 'পিএইচপি') এবং এটি কনফিগার করতে অন্তর্ভুক্ত।

set $variable "php";
server_name $variable.domain.com;
root /srv/web/vhosts/$variable/web;
error_log /srv/web/vhosts/$variable/logs/error.log;
access_log /srv/web/vhosts/$variable/logs/access.log;

তবে এটি সিগ করে যে এনগিনেক্স এই কনফিগারেশনে ভেরিয়েবল উপেক্ষা করে। আমি কি কিছু ভুল করছি বা অবস্থানের পথগুলিতে ভেরিয়েবল ব্যবহার করা সম্ভব নয়?

উত্তর:


58

চলকগুলি কোথাও ঘোষণা করা যায় না বা কোনও নির্দেশে ব্যবহার করা যায় না।

যেমন setনির্দেশনার ডকুমেন্টেশন হ'ল:

Syntax:   set $variable value;
Default:  —
Context:  server, location, if

তাত্ক্ষণিক পরিণতি হ'ল আপনি কোনও httpব্লকে কাস্টম ভেরিয়েবল ব্যবহার করতে পারবেন না ।

আপডেট : এই চ্যাটরুমে আলেক্সিটেনের সাথে আলোচনা এবং পরীক্ষার পরে ।

  • access_logসীমাবদ্ধতা সহ ভেরিয়েবল থাকতে পারে। তন্মধ্যে, বাফারিংয়ের অভাব এবং নেতৃস্থানীয় স্ল্যাশ অবশ্যই পরিবর্তনশীল হিসাবে ঘোষণা করা উচিত নয়
  • error_log ভেরিয়েবলের সাথে মোটেও কাজ করবে না।
  • root নির্দেশিকায় ভেরিয়েবল থাকতে পারে।
  • server_nameনির্দেশ কেবলমাত্র $hostnameএকটি পরিবর্তনশীল-জাতীয় স্বরলিপি হিসাবে কঠোর মানকে অনুমতি দেয় ।

1
access_log/ error_logভেরিয়েবলের সাথে কাজ করে তবে কিছু সীমাবদ্ধতা নিয়ে। server_nameভেরিয়েবল থাকতে পারে না।
আলেক্সি দশ

অ্যালেক্সাএইটেন আমার উত্তরটি পুনরায় পড়ুন। এটি কাস্টম ভেরিয়েবলগুলির সাথে কাজ করে না । সার্ভারের নামটিতে বিল্ট-ইন ভেরিয়েবলের মতো থাকতে পারে $hostname। সেই আচরণটি স্পষ্ট করতে উত্তর আপডেট করেছে।
জাভিয়ের লুকাস

5
ওয়েল, $hostnameএকমাত্র অনুমোদিত পরিবর্তনশীল। github.com/nginx/nginx/blob/… আসলে, এটি অনেকটা যাদুর ধ্রুবকের মতো, বাস্তব পরিবর্তনশীল নয়
আলেক্সি টেন


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