एक अमेज़ॅन EC2 फ़ोल्डर को दूसरे उदाहरण पर इंगित करें


2

मुझे नहीं पता कि क्या यह पूछने के लिए सही जगह है। लेकिन मेरे पास AWS पर Amazon EC2 उदाहरण पर एक वेब ऐप चल रहा है। हम एक वर्डप्रेस ब्लॉग लॉन्च करना चाहते हैं जिसे यहां रखा जाएगा www.myapp.com/blog

मैं नहीं चाहता कि वे एक ही अमेज़ॅन EC2 उदाहरण में हों, इसलिए मैंने एक और उदाहरण बनाया है और अपना वर्डप्रेस वातावरण स्थापित किया है। यह एक रनिंग है।

अब मुझे क्या करने की आवश्यकता है, इस फ़ोल्डर /blogको इस उदाहरण पर इंगित करना है। मुझे लगता है कि हमें अमेज़न रूट 53 का उपयोग करना होगा? मैंने भी ऐसा करने की कोशिश की, लेकिन जाहिर है कि मैं blog.myapp.comएक फ़ोल्डर में CNAME बना सकता था और नहीं /blog। और हम वास्तव में इसे चाहते हैं www.myapp.com/blog। क्या मुझे कुछ उपयोग करना चाहिए .htaccess?

जवाबों:


3

अब मुझे क्या करने की आवश्यकता है, इस फ़ोल्डर /blogको इस उदाहरण पर इंगित करना है। मुझे लगता है कि हमें अमेज़न रूट 53 का उपयोग करना होगा? मैंने भी ऐसा करने की कोशिश की, लेकिन जाहिर है कि मैं blog.myapp.comएक फ़ोल्डर में CNAME बना सकता था और नहीं /blog। और हम वास्तव में इसे चाहते हैं www.myapp.com/blog। क्या मुझे कुछ उपयोग करना चाहिए .htaccess?

संक्षिप्त जवाब।

संक्षेप में, आप जो वर्णन कर रहे हैं — जैसा कि आप उसका वर्णन कर रहे हैं — काम नहीं कर सकता। जबकि blog/एक निर्देशिका / फ़ोल्डर / मुख्य पर पथ है www.myapp.comअमेज़न EC2 उदाहरण के लिए, आप सर्वर और वेब URL पथ की अवधारणा को मिश्रण कर रहे हैं; उर्फ: निर्देशिका, फ़ोल्डर और पथ।

यदि आप एक नए अमेज़ॅन EC2 उदाहरण को स्पिन कर रहे हैं, तो आप एक नया सर्वर सेट कर रहे हैं। और एक ही आधार होस्टनाम के साथ दो सर्वर, www.myapp.comलेकिन केवल एक के पास वैध रास्ता /blogहो सकता है।

यदि आप इस साइट को सर्वरों में विभाजित करना चाहते हैं तो आपकी सबसे अच्छी शर्त नए अमेज़ॅन EC2 इंस्टेंस को सबडोमेन के साथ सेटअप करना है blog.myapp.comऔर पहले ट्रैफ़िक www.myapp.com/blogको उस नए सबडोमेन / होस्ट पर सभी ट्रैफ़िक को रीडायरेक्ट करना है।

अधिक विवरण नीचे।

लंबा जवाब।

तो आपके पास दो अमेज़ॅन EC2 उदाहरण हैं:

  • EC2 इंस्टेंस 1: होस्टिंग है www.myapp.com
  • EC2 Instance 2: आप होस्ट करना चाहते हैं www.myapp.com/blog

सबसे पहले, इसका अमेज़ॅन रूट 53 के साथ 100% कुछ भी नहीं है जो अमेज़ॅन की डीएनएस सेवा है। सभी अमेज़ॅन रूट 53 होस्टनाम और गंतव्य आईपी पते जैसी चीजों के लिए DNS प्रविष्टियों का प्रबंधन करते हैं। यह समझने का एक आसान तरीका /URL में पहले पथ ( ) के बाईं ओर कुछ भी है, एक होस्टनाम है। तो आपके उदाहरण में:

www.myapp.com/blog

प्रश्न में होस्टनाम है www.myapp.com

तो CNAME के ​​माध्यम www.myapp.com/blogसे EC2 इंस्टेंस 1 से EC2 इंस्टेंस 2 तक "पुनर्निर्देशित" करने का प्रयास कभी नहीं होगा। यह तकनीकी रूप से संभव नहीं है और यहां बताया गया है:

  • पहले, /URL में दाईं ओर पथ डेटा के लिए DNS प्रविष्टि सेट नहीं की जा सकती थी ।
  • दूसरे, आप मूल रूप से यह कहते हुए किया जाएगा यदि आप चाहते EC2 उदाहरण 1 और EC2 उदाहरण 2 के एक ही सटीक होस्ट नाम के लिए www.myapp.comहै, जबकि केवल EC2 उदाहरण 2 होता है blog/जो तकनीकी रूप से जिस तरह से अपने प्रश्न का तात्पर्य में संभव नहीं है।

एक अधिक यथार्थवादी समाधान अमेज़ॅन रूट 53 के माध्यम से एक नया उपडोमेन सेटअप करना होगा ताकि नया अमेज़ॅन ईसी 2 इंस्टेंस सेटअप इस तरह हो:

  • EC2 इंस्टेंस 1: होस्टिंग है www.myapp.com
  • EC2 Instance 2: होस्ट करेगा blog.myapp.com

इस तरह के मामले में आप तब अपाचे को फिर से लिखना नियम बना सकते हैं www.myapp.com/blogताकि जाने के लिए किए गए सभी ट्रैफ़िक अनुरोधों को लागू किया जा सके blog.myapp.com.htaccessइस तरह एक कमांड के साथ बहुत व्यवहार्य और आसान :

RewriteEngine On
RewriteRule     ^blog(/.*)?$    http://www.newdomain.com/ [R=301]

आप बस में जगह होता है कि .htaccessकी जड़ पर स्थित फ़ाइल www.myapp.comऔर उस से सभी यातायात रीडायरेक्ट करेगा EC2 उदाहरण 1 के लिए जा रहा blog/करने के लिए blog.myapp.com

एक और बात: अपाचे रिवर्स प्रॉक्सी का उपयोग करने के पेशेवरों / विपक्ष।

तो ऊपर के सभी कहा एक टिप्पणीकार को लाने करता है करने के लिए जा अनुरोधों में स्थापित करने और पाइप के लिए अपाचे रिवर्स प्रॉक्सी के संभावित उपयोग www.myapp.com/blogपर EC2 उदाहरण 1 करने के लिए blog.myapp.comपर EC2 उदाहरण 2 । हां, यह तकनीकी रूप से उन लक्ष्यों को प्राप्त कर लेगा जो मूल प्रश्न को रेखांकित करते हैं, लेकिन यह कृमियों की क्षमता को खोल देता है:

  • अपाचे रिवर्स प्रॉक्सी की स्थापना की जटिलता: अब मैं यह नहीं कह रहा हूं कि रिवर्स प्रॉक्सी की अवधारणा इतनी जटिल है कि एक औसत उपयोगकर्ता सीख नहीं सकता कि इसका उपयोग कैसे किया जाए। वास्तव में यह समझने में आसान है कि एक बार आप इसे लटका दें। लेकिन अपाचे कॉन्फ़िगरेशन को समायोजित करने और सेटअप के जीवनकाल में उन कॉन्फ़िगरेशन को प्रबंधित करने से जटिलता आती है। उदाहरण के लिए कुछ वेब विकास की दुकानों में, यह एक DevOps कार्य माना जाएगा। और कुछ डेवलपर्स इस तरह से एक गैर-सामान्य DevOps कार्य से निपटना नहीं चाहते हैं।
  • रिवर्स प्रॉक्सी का अर्थ है कि दोनों सर्वर ट्रैफ़िक प्राप्त करते हैं: चूंकि एक रिवर्स प्रॉक्सी मूल रूप से एक "पाइप" है जो एक सर्वर से दूसरे में ट्रैफ़िक को रूट करता है, EC2 इंस्टेंस 2 के लिए किस्मत में ट्रैफ़िक को अभी भी EC2 इंस्टेंस 1 से गुजरना होगा । यदि अलग-अलग अमेज़ॅन ईसी 2 इंस्टेंसेस स्थापित करने का लक्ष्य यह सुनिश्चित करना है कि एक सर्वर दूसरे को प्रभावित नहीं करता है, तो रिवर्स प्रॉक्सी समस्याग्रस्त हो सकता है। मान लीजिए कि ट्रैफ़िक के टन-वास्तविक उपयोगकर्ताओं या हमले से - www.myapp.com/blogक्या होता है? EC2 इंस्टेंस 1 पर मुख्य सर्वर उस ट्रैफ़िक के साथ-साथ EC2 इंस्टेंस 2 प्राप्त करता है ; इसलिए दोनों सर्वर संभावित रूप से कमजोर हैं। इसके विपरीत एक साधारणRewriteRuleएक उपडोमेन पर ट्रैफ़िक उछालने के लिए हल्का / नगण्य लोड-वार है और चूंकि अधिकांश उपयोगकर्ता blog.myapp.comवैसे भी उपडोमेन पर ब्लॉग को हिट करेंगे , दोनों सर्वर अलग-अलग हो जाते हैं / प्रत्येक ट्रैफ़िक से अलग हो जाता है।
  • दोनों सर्वर मुख्य सर्वर के दुर्गम में नीचे जाते हैं: समझने में बहुत सरल। यदि EC2 इंस्टेंस 1 ट्रैफ़िक के www.myapp.com/blogसाथ-साथ कोर सामग्री के लिए भी प्रबंध कर रहा है www.myapp.com, यदि वह सर्वर डाउन हो जाता है, तो दोनों साइट अप्राप्य हैं। एक उपडोमेन होने का blog.myapp.comमतलब है कि भले ही मुख्य सर्वर www.myapp.comनीचे चला जाए, फिर blog.myapp.comभी सुलभ है।

यदि आप अपाचे रिवर्स प्रॉक्सी सेटअप का उपयोग करना चाहते हैं, तो मैंने कहा कि मेरे पास सर्वर फाल्ट पर दो उत्तर हैं- यह एक और यह मूल कॉन्फ़िगरेशन और सेटअप की व्याख्या करता है।

ध्यान दें कि वे पोस्ट सोलर और अन्य जावा / टॉम्कट एप्लिकेशन पर ध्यान केंद्रित करते हैं जो पोर्ट का उपयोग करते हैं 8080और मैं अपने जीवन को आसान बनाने के लिए अपाचे रिवर्स प्रॉक्सी का उपयोग कैसे करता हूं क्योंकि टॉमकैट मेरी विनम्र राय को कॉन्फ़िगर / प्रबंधित करने के बट में दर्द है। अपाचे रिवर्स प्रॉक्सिंग ने मुझे टॉमकैट के क्विरक्स से निपटने के बजाय किसी साइट के फ्रंट-फेसिंग वेब एक्सेस को प्रबंधित करने के लिए अपाचे कॉन्फ़िगरेशन को समझने के लिए अपेक्षाकृत आसान उपयोग करने की अनुमति दी। लेकिन समग्र अवधारणाओं को अपाचे-से-अपाचे रिवर्स प्रॉक्सी प्रॉक्सी में उपयोग से आसानी से अनुकूलित किया जा सकता है।


1
यह सबसे अच्छा समाधान प्रतीत होता है। रोगी स्पष्टीकरण @JakeGould के लिए धन्यवाद!
ग्रापिवा

@grpaiva कोई समस्या नहीं! मदद करने के लिए खुश!
जेकलॉल्ड

1
@JakeGould, यह एक तकनीकी रूप से ठोस जवाब है, लेकिन /blogएक मशीन से दूसरी मशीन में रिवर्स-प्रॉक्सिंग अनुरोधों के विकल्प का कोई उल्लेख क्यों नहीं है ? प्रस्तुत समाधान कई मायनों में बेहतर हो सकता है, लेकिन ऐसा करना संभव है जो मूल रूप से http अनुरोधों को अग्रेषित करके और प्रतिक्रियाओं को रिले करके वांछित था।
माइकल - sqlbot

@ माइकल- sqlbot यह एक डेवलपर के लिए प्रारंभिक लक्ष्य को प्राप्त करने के लिए एक काफी जटिल रास्ता होगा जो अपाचे प्रॉक्सी सेटअप के काम करने और उस से जुड़े अंतर्निहित बुनियादी ढांचे पेशेवरों / विपक्ष से परिचित नहीं है। इसके अलावा EC2 # 1 पर एक रिवर्स प्रॉक्सी को अभी भी EC2 # 2 पर जाने वाले ट्रैफ़िक से निपटना होगा। तो-आइए बताते हैं- किसी ने blog/रास्ते पर हमला किया या एक टन यातायात चला गया blog/, तब क्या होता है? EC2 # 1 को उस सभी ट्रैफ़िक को प्रॉक्सी करना पड़ता है और एक छोर पर दबाया जा सकता है जबकि EC2 # 2 अभी भी दूसरे छोर पर हिट हो रहा है। यह उपडोमेन सेटअप वास्तव में दोनों सर्वरों को अलग करता है।
जेकगॉल्ड

@ माइकल- sqlbot और अपाचे रिवर्स प्रॉक्सीज़िंग का उल्लेख करने के लिए फिर से धन्यवाद; मैंने अपने जवाब में एक परिशिष्ट संपादित किया है जो मुझे पता है कि इस तरह के सेटअप के पेशेवरों और विपक्षों को क्या विश्वास है।
जेकगॉल्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.