Nginx में क्रम में नहीं विन्यास फाइल शामिल हैं?


12

क्या वह क्रम है जिसमें Nginx में फिक्स्ड कॉन्फ़िगरेशन फाइलें शामिल हैं, या यादृच्छिक? अपाचे स्पष्ट रूप से वर्णमाला क्रम में वाइल्डकार्ड वर्णों का विस्तार करता है। Nginx के साथ ऐसा लगता है कि यह लागू नहीं होता है, और मैनुअल इसके बारे में कुछ नहीं कहता है

मेरे सेटअप में, 20_example.comपहले शामिल किया गया था 00_default, जो वहां साझा निर्देशों (जैसे लॉग प्रारूप) को परिभाषित करने के मेरे उद्देश्य को पराजित करता है।

जवाबों:


23

Nginx स्रोत कोड के अनुसार यह GLOB_NOSORT पैरामीटर के साथ ग्लोब () फ़ंक्शन का उपयोग करता है , इसलिए, फ़ाइल समावेशन का क्रम स्पष्ट रूप से स्थापित नहीं किया जा सकता है।

नवंबर 2012 में इसे बदल दिया गया , पहली बार 1.3.10 में जारी किया गया। से changefile :

अब यदि "शामिल" निर्देश मास्क के साथ यूनिक्स सिस्टम पर उपयोग किया जाता है, तो शामिल फ़ाइलों को वर्णानुक्रम में क्रमबद्ध किया जाता है।


3

AD7six का उत्तर पूर्ण रूप से सही नहीं है। आदेश भी मायने रखता है जब दो सर्वर ब्लॉक में एक ही "विशिष्टता" होती है, उदाहरण के लिए जब दोनों सर्वर_नाम में रेग्जेस का उपयोग करते हैं, और आने वाले अनुरोध दोनों से मेल खाते हैं:

server {
    server_name ~^(www\.)?(?<domain>foo\.com|bar\.com|baz\.com)$;
    ...
}

तथा

server {
    server_name ~^(www\.)?(?<domain>.+)$;
    ...
}

इस परिदृश्य में, दो सर्वर ब्लॉक को दो फ़ाइलों में नहीं फैलाया जा सकता क्योंकि उनके आदेश की गारंटी नहीं दी जा सकती थी।


1

जैसा कि ओपी log_format आदेश बताता है कि यह वास्तव में बहुत महत्वपूर्ण है, कस्टम log_formats के मामले में, यदि आप एक ही dir दोनों प्रकार की फाइलों में रखते हैं, कुछ फाइलें log_formats के साथ, कुछ फाइलें सर्वर ब्लॉक के साथ जो उन log_formats का उपयोग करती हैं, परिणाम एक होगा अत्यधिक अप्राप्य विन्यास।

काम पर जब हमने पहली बार अपने हाथ से बने नग्नेक्स फार्म को कठपुतली में स्थानांतरित किया, तो हमने एक समान हार्डवेयर / सेटअप में विफल होने के लिए स्क्रैच से कुछ नगनेक्स इंस्टॉलेशन को देखना शुरू कर दिया, दो / आदि / नगीने / / (- - जैसे विचित्र स्थितियों में बहुत डिबगिंग के बाद। r) एक md5match और एक ही बाइनरी के साथ अलग-अलग परिणाम (एक पर अमान्य log_format त्रुटि और दूसरे पर काम कर रहे हैं) का उत्पादन करते हुए, हमने कठिन तरीका सीखा है कि यह log_format जैसे कुछ निर्देशों के लिए वास्तव में बहुत महत्वपूर्ण है

हमने समस्या को केवल.d_ * के बाद शामिल किए गए अन्य फ़ोल्डर में conf.d / * से बाहर ले जाकर सर्वर ब्लॉक करके समस्या को ठीक किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.