Nginx: रूट फ़ाइल के सापेक्ष रूट पथ


17

क्या rootयुक्त फ़ाइल के सापेक्ष पथ निर्दिष्ट करना संभव है ?

हम एक वेब ऐप विकसित कर रहे हैं और app-nginx.confप्रोजेक्ट की डायरेक्टरी में ऐप-विशिष्ट कॉन्फ़िगरेशन के साथ फाइल रखते हैं । मैं इस फ़ाइल को मुख्य रूप से शामिल करने में सक्षम होना चाहता हूं nginx.confऔर rootआवश्यक प्रोजेक्ट की उप-निर्देशिका को संदर्भित करना ठीक से पथ है। उदाहरण:

# /etc/nginx/nginx.conf
http {
    include /absolute/path/to/app/app-nginx.conf
}


# /absolute/path/to/app/app-nginx.conf
server {
    server_name localhost;
    listen 9090;

    root ./app;
}

समान कॉन्फ़िगरेशन के साथ nginx शुरू करने के बाद nginx ./appnginx इंस्टॉलेशन डायरेक्टरी ( /usr/local/Cellar/nginx/1.4.3/मेरे मामले में) के सापेक्ष पथ को हल करने की कोशिश करता है , ऐप की डायरेक्टरी को नहीं।

जवाबों:


11

क्या यह संभव फ़ाइल के साथ रूट पथ निर्दिष्ट करने के लिए संभव है?

संक्षिप्त उत्तर: नहीं।

लंबे उत्तर: Nginx, डिफ़ॉल्ट रूप से, केवल पथ के बारे में जानता है जैसे कि --prefixऔर --conf-pathवह संकलन समय पर सेट किया गया है (संदर्भ: https://nginx.org/en/docs/configure.html )। हम Nginx द्वारा उपयोग किए गए विभिन्न रास्तों को कमांड चलाकर पा सकते हैं nginx -V(यह पूंजी "V" है)। इसलिए, --conf-pathजहां मुख्य nginx.confफ़ाइल रहती है और उस पथ का उपयोग किसी भी संबंधित पथ के लिए किया जाता है।

आधिकारिक दस्तावेज ( https://nginx.org/r/root ) के अनुसार, एक rootनिर्देश में अन्य चर शामिल हो सकते हैं।

प्रारंभिक उत्तर को पोस्ट करने के 5 साल बाद स्पष्ट करने के लिए @ इस्कर के लिए धन्यवाद!


धन्यवाद, पोथी। दुर्भाग्य से मेरे लिए विकल्पों में से कोई भी काम नहीं करता है। --prefixकॉन्फ़िगरेशन फ़ाइल की तुलना करने के प्रबंधन के लिए अन्य नगीनेक्स सर्वर और मेरे व्यक्तिगत दृष्टिकोण से थोड़ा कठिन हो सकता है। और nginx setनिर्देशन serverसंदर्भ के साथ कस्टम चर बनाने की अनुमति नहीं देता है , इसलिए मैं अपने ऐप-nginx.conf फ़ाइल से पूर्ण पथ को स्थानांतरित नहीं कर सकता।
एंटोन मोइसेव

तो, किसी भी रिश्तेदार पथ के लिए उस पथ का उपयोग किया जाता है। मुझे लगता है कि यह गलत है। ऐसा लगता है कि nginx विकल्पों के लिए config dir का उपयोग करेगा includeऔर ssl_certificate, उदाहरण के लिए, लेकिन जैसे विकल्पों के लिए उपसर्ग dir का उपयोग करेगा root। मैं पूरी सूची के साथ नहीं आता हूं जिसके बारे में प्रत्येक विकल्प का उपयोग किया जाता है।
साइकर

@Cyker आप सही हैं। जवाब अभी अपडेट करें। बेशक, यह पूरा नहीं है। लेकिन, मूल उत्तर से बेहतर (जो वास्तव में गलत / गलत था)।
पोथी कालीमुथु

मैं नग्नेक्स को बिगिनर से प्रो तक पढ़ रहा हूं, यह नोट किया गया है: "आपने पहले ही किसी लोकेशन ब्लॉक के अंदर रूट डायरेक्टिव का उपयोग देखा है। रूट डायरेक्शंस ने नग्नेक्स को पूरी तरह से योग्य पथ / आदि / के बजाय /image/myimage.jpg पर लौटने के लिए कहता है। nginx / html / APP1 / छवि / myimage.jpg। " तो IMHO इसका मतलब है कि Nginx विन्यास सापेक्ष पथ का समर्थन करता है?
वेबवॉमन

यहां, यह प्रश्न "रूट" निर्देश के लिए विशिष्ट है और क्या यह "फ़ाइल को भ्रमित करने के लिए सापेक्ष पथ" का समर्थन कर सकता है।
पोथी कालीमुथु

0

मुझे सापेक्ष पथों का उपयोग करने या वैश्विक चर को परिभाषित करने का कोई तरीका नहीं मिला है, लेकिन यह छोटी सी चाल मेरी समस्या को हल करती है।


3
क्या छोटी सी चाल?
माइकल हैम्पटन

मैं चर को परिभाषित नहीं कर सकता, लेकिन मैं mapएकल defaultमान के साथ निर्देश का उपयोग कर सकता हूं जो मेरे लिए चर की भूमिका निभाएगा।
एंटोन मोइसेव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.