सर्वर {} ब्लॉक में एक चर के रूप में संदर्भ रूट स्थान


11

मेरे nginx सर्वर {} ब्लॉक में मैंने रूट को एक पथ के साथ परिभाषित किया है। मैं बाद में इस पथ का संदर्भ कैसे दे सकता हूं?

यह वही है जिसे मैं पूरा करने की कोशिश कर रहा हूं:

server {
    listen 80;
    root /var/www/foosite;

    ...

    include $root/*.ngaccess;
}

दुर्भाग्य से $ रूट का उपयोग करना काम नहीं करता है (क्योंकि मैंने इसे परिभाषित नहीं किया है)। क्या Nginx रूट मान तक पहुंचने का एक तरीका प्रदान करता है?

जवाबों:


15

आप document_rootचर चाहते हैं ।


ऐसा करना: रूट / var / www / foosite / public /; $ document_root.ngaccess को शामिल करें; मुझे "nginx: [emerg] open ()" /etc/nginx/$document_root/.ngaccess "त्रुटि मिली (2: ऐसी कोई फ़ाइल या निर्देशिका नहीं)।" $ document_root ऐसा लगता है कि यह समाधान होगा, लेकिन क्या मैंने कुछ गलत टाइप किया है? इस पोस्ट के अनुसार (और अन्य जो मैं भर में आया था) forum.linode.com/viewtopic.php?t=7898 , वेरिएबल्स को स्टेटमेंट में शामिल नहीं किया जा सकता है। जो, अगर सच है, दुर्भाग्यपूर्ण है।
स्काइलर

इसका मतलब है कि नगनेक्स केवल includeस्टार्टअप पर निर्देश का मूल्यांकन कर रहा है , हर अनुरोध के लिए नहीं (जो समझ में आता है), इसलिए ऐसा लगता है कि आप जो हासिल करना चाहते हैं वह दुर्भाग्य से संभव नहीं है।
प्रातः

1
मैं यहां एक समस्या में भी भाग गया: "$ value_root और $ realpath_otot को छोड़कर पथ मान में चर हो सकते हैं।" nginx.org/en/docs/http/…
संपादक 19
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.