2011-09-02 6 views
11

क्या एक हेरोकू ऐप में रखरखाव पृष्ठ को लागू करने के लिए एक साफ, सुरुचिपूर्ण तरीका है? तो अगर कुछ तोड़ता है तो आप स्विच को आसानी से बदल सकते हैं और रखरखाव पृष्ठ सभी अनुरोधों के लिए बढ़ जाता है? अधिमानतः एक तरीका है कि पुश की आवश्यकता नहीं है?एक हेरोकू ऐप में रखरखाव पृष्ठ को लागू करने का एक स्मार्ट तरीका क्या है?

विचार? धन्यवाद

+0

http://stackoverflow.com/questions/2244263/capistrano-to-deploy-rails-application-how-to-handle-long-migrations समान चर्चा और अपाचे के लिए समाधान है। – leenasn

उत्तर

0

यह संभवतः फ़िल्टर श्रृंखला की शुरुआत में before_filter जोड़कर आसानी से पूरा किया जा सकता है जो रखरखाव मोड की स्थिति के लिए जांच करता है और उपयुक्त होने पर रखरखाव पृष्ठ पर रीडायरेक्ट करता है।

13

नोट यह उत्तर nginx या रैक सेटअप को संबोधित करता है, क्योंकि मूल प्रश्न में संपादन से पहले लिखा गया था कि यह स्पष्ट हो गया है कि हेरोोकू के लिए विशिष्ट उत्तर की तलाश है। स्वीकार्य उत्तर Heroku ऐप्स के लिए सबसे अच्छा है।


जब आप कहते हैं कि "आपके ऐप्लिकेशन पर" क्या तुम सच में अपने अनुप्रयोग में मतलब है?

क्योंकि आमतौर पर समाधान आपके वेब रूट में रखरखाव फ़ाइल को छोड़ना है। अगर फ़ाइल पाई जाती है, तो इसे तुरंत 503 Service Not Available पर परोसा जाता है। अनुरोध कभी भी आपके ऐप को नहीं बनाता है, जो संभवतः "रखरखाव के लिए नीचे" है।

nginx में, कुछ इस तरह:

location/{ 
     if (-f $document_root/maintenance.html) { 
      return 503; 
     } 

     # continued server directives 
    } 

    error_page 503 @maintenance; 
    location @maintenance { 
      rewrite ^(.*)$ /maintenance.html break; 
    } 

यह वास्तव में एक धक्का की आवश्यकता नहीं होगी दर असल, लेकिन शायद एक सरल रेक कार्य या जोड़ें/अपने ऐप्लिकेशन से उस रखरखाव फ़ाइल को हटाने के लिए कुछ। आप शायद -f चेक में किसी भी दिए गए फ़ाइल नाम को प्रतिस्थापित कर सकते हैं, और बस touch अपनी वेब रूट में एक खाली मनमानी maintenance.whatever फ़ाइल को प्रतिस्थापित कर सकते हैं, जो mainenance.html की सेवा करने के लिए nginx को निर्देशित करेगा।

आप नहीं करना चाहते हैं (या नहीं कर सकते हैं) सर्वर config के साथ गड़बड़ चारों ओर है, तो यह बहुत ही सरल रैक मिडलवेयर अनिवार्य रूप से एक ही बात करता है: https://github.com/ddollar/rack-maintenance

+0

रैक मिडलवेयर समाधानों में से एक का उपयोग करना (जैसे उत्तर में उल्लिखित), क्या किसी ने सफलतापूर्वक काम करने के लिए इसे प्राप्त किया है जब डीबी नीचे है? –

0

उपरोक्त उत्तर मूलभूत परिदृश्य के लिए सही हैं।

आपके प्रश्न का उत्तर की स्मार्ट भाग के लिए कोई एडऑन कि तुम वहाँ मिल जाएगा है:

https://addons.heroku.com/trackman

1

एमानुएल जवाब पर जोड़ने के लिए:

Trackman prod को देव से अपने रखरखाव पृष्ठों के साथ मदद करता है ।

आप

  • अपने स्थैतिक पृष्ठ के भीतर अपने वर्तमान साइट लेआउट (~ 0 एचटीएमएल संपादन)
  • लिंक अपने मौजूदा परिसंपत्तियों का उपयोग कर उन्हें पाड़ कर सकते हैं
  • अपने देव वातावरण के भीतर अपने पृष्ठ लेआउट पर
  • देखो

जब आप हेरोकू को दबाते हैं तो यह सब कुछ एस 3 पर तैनात करेगा और आपको S3 पर खाता भी सेट अप करने की आवश्यकता नहीं है।

तुम भी, जबकि रखरखाव मोड पर अपने S3 पृष्ठों के लिए

rake trackman:setup 

तो Heroku अंक चलाने के लिए है।

http://www.trackman-addon.com

संबंधित मुद्दे

 संबंधित मुद्दे