नंगेक्स पर रखरखाव पृष्ठ, सर्वोत्तम अभ्यास


13

जब मैं मौजूद होता है तो मैं एक रखरखाव पृष्ठ दिखाने के लिए सर्वर को कॉन्फ़िगर करना चाहता हूं। मैंने इस कोड की कोशिश की और काम करता है:

location / {
    try_files /maintenance.html $uri $uri/ @codeigniter;
}

लेकिन मैंने देखा कि इसे 200 स्टेटस कोड के साथ परोसा जाएगा, और इससे सर्च इंजन को भ्रम हो सकता है। मुझे लगता है कि सबसे अच्छा अभ्यास 503 स्थिति कोड लौटाएगा। Google पर मुझे इसके बारे में कई प्रासंगिक पृष्ठ मिलते हैं, जैसे कि यह । हालाँकि, वे उपयोग करते हैं यदि रीडायरेक्ट करने के लिए और nginx प्रलेखन के अनुसार यह ifs का उपयोग करने के लिए सुरक्षित नहीं है।

क्या इसका उपयोग किए बिना करने का एक तरीका है? यदि इस मामले में उपयोग करना सुरक्षित है?

धन्यवाद।

जवाबों:


7

मुझे लगता है कि सबसे अच्छा अभ्यास 500 का स्टेटस कोड लौटाएगा।

मुझे लगता है कि आपका मतलब 500 के बजाय 503 है।

वे ifरीडायरेक्ट करने के लिए उपयोग करते हैं और nginx प्रलेखन के अनुसार यह ifs का उपयोग करने के लिए सुरक्षित नहीं है।

सं केवल returnहै 100% सुरक्षित अंदर ifमें locationसंदर्भ।

Nginx प्रलेखन के अनुसार , आप अंतिम तर्क के रूप में एक HTTP स्थिति कोड निर्दिष्ट कर सकते हैं try_files। मैंने यह कोशिश की है, लेकिन यह काम नहीं किया।


21

ये है जो मैं करता हूं।

            if (-f $document_root/maintenance.html) {
                    return 503;
            }
            error_page 503 @maintenance;
            location @maintenance {
                    rewrite ^(.*)$ /maintenance.html break;
            }

यदि फ़ाइल वहाँ है तो यह रखरखाव पृष्ठ दिखाएगा। एक बार जब आप फ़ाइल को हटा देंगे तो आप वापस सामान्य हो जाएंगे।


2
हाँ, यह वही कोड है जो प्रश्न में लिंक पर है। मैं वास्तव में पूछ रहा हूं कि क्या ifइस मामले में एस का उपयोग करना सुरक्षित है क्योंकि इसे प्रलेखन के अनुसार उपयोग नहीं किया जाना चाहिए ।
नेवार्क

1
और वही प्रलेखन: In some cases it's also possible to move ifs to server level (where it's safe as only other rewrite module directives are allowed within it).माइक के रूप में रखरखाव त्रुटि_ पृष्ठ सामान्य रूप से सर्वर {} संदर्भ में सेट किया गया है।
रेगन

1
मैंने ऐसा ही किया सिवाय फ़ाइल के अस्तित्व की जाँच के बिना 50 503 लौटाया ’। इस तरह मैं केवल साइट को सक्षम / अक्षम (डेबियन के "साइट्स-उपलब्ध" / "साइट्स-सक्षम" लेआउट का उपयोग करके) सहानुभूति से कर सकता हूं और रखरखाव पृष्ठ चालू कर सकता हूं।
असफंद काजी

2
ऐसा लगता है कि एक प्रदर्शन हिट होगा: NGINX को हर अनुरोध के लिए एक फ़ाइल की मौजूदगी की जांच करनी होगी ...
Marc

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