Nginx: किसी दिए गए निर्देशिका से बाहर स्थिर फ़ाइलों की सेवा करें - एक स्तर बहुत गहरा


12

मैं nginx विन्यास के लिए बहुत नया हूँ। मैं एक बहुत बुनियादी समस्या के साथ कुछ कठिनाई हो रही है। मैं / doc (index.html, कुछ चित्र आदि) पर कुछ स्थिर फ़ाइलों की मेजबानी करना चाहता हूँ। फाइलें एक निर्देशिका में स्थित हैं, जिन्हें / साइट्स / mysite / proj / doc / कहा जाता है।

समस्या यह है, कि नीचे दिए गए नेगनेक्स कॉन्फिग के साथ, नेग्नेक्स "/ साइट्स / मायसाइट / प्रोज / डॉक / डॉक" नामक एक निर्देशिका की तलाश करने की कोशिश करता है। शायद यह रूट / साइट्स / mysite / proj / पर सेट करके तय किया जा सकता है, लेकिन मैं proj / निर्देशिका में संभावित रूप से अन्य (गैर-स्थिर) परिसंपत्तियों को उजागर नहीं करना चाहता हूं। और विभिन्न कारणों से, मैं वास्तव में डॉक्टर / निर्देशिका को स्थानांतरित नहीं कर सकता, जहां से यह है।

मुझे लगता है कि इस स्थिति को हल करने के लिए एक रीराइट नियम का उपयोग करने का एक तरीका है, लेकिन मैं वास्तव में सभी भागों को नहीं समझता हूं, इसलिए नियम बनाने में कुछ कठिनाई होती है।

rewrite ^/doc/(.*)$ /$1 permanent;

मैंने एक / साइट्स / mysite / htdocs / static / निर्देशिका से बाहर फ़ाइलों को होस्ट करने का एक कार्यशील उदाहरण भी शामिल किया है।

> vim locations.conf

location /static {
    root   /sites/mysite/htdocs/;
    access_log   off;
    autoindex  on;
}

location /doc {
    root   /sites/mysite/proj/doc/;
    access_log   on;
    autoindex  on;
}


2011/11/19 23:49:00 [error] 2314#0: *42 open() "/sites/mysite/proj/doc/doc" failed (2: No such file or directory), client: 100.100.100.100, server: , request: "GET /doc HTTP/1.1", host: "myhost.com"

क्या किसी के पास कोई विचार है कि मैं इस स्थिर सामग्री की सेवा के बारे में कैसे जा सकता हूं?

जवाबों:


19

आप इस तरह से अन्य का उपयोग कर सकते हैं:

location /doc {
    alias   /sites/mysite/proj/doc/;
}

http://wiki.nginx.org/HttpCoreModule#alias


1
इसका उपयोग करना बेहतर है root डॉक के अनुसार आपके द्वारा संदर्भित (देखें "जब स्थान निर्देश के मूल्य के अंतिम भाग से मेल खाता है")
Rafael Xavier

अद्यतन डॉक्टर लिंक nginx.org/en/docs/http/ngx_http_core_module.html#alias
LucScu
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.