प्रोहोस्टर > ब्लॉग > प्रशासन > OpenLiteSpeed के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना
OpenLiteSpeed के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना
मैं आंतरिक नेटवर्क पर नेक्स्टक्लाउड के प्रॉक्सी को रिवर्स करने के लिए OpenLiteSpeed कैसे सेट करूं?
हैरानी की बात है, Habré पर OpenLiteSpeed की खोज कुछ भी नहीं देती है! मैं इस अन्याय को ठीक करने में जल्दबाजी करता हूं, क्योंकि एलएसडब्ल्यूएस एक अच्छा वेब सर्वर है। मुझे इसकी गति और फैंसी वेब प्रशासन इंटरफ़ेस के लिए यह पसंद है:
भले ही OpenLiteSpeed वर्डप्रेस "त्वरक" के रूप में सबसे प्रसिद्ध है, आज के लेख में मैं इसका एक विशिष्ट उपयोग दिखाऊंगा। अर्थात् अनुरोधों का रिवर्स प्रॉक्सी (रिवर्स प्रॉक्सी)। आप कहते हैं कि इसके लिए nginx का उपयोग करना अधिक सामान्य है? मैं सहमत हूँ। लेकिन यह इतना दर्द देता है कि हमें LSWS से प्यार हो गया!
प्रॉक्सी करना ठीक है, लेकिन कहाँ? कोई कम अद्भुत सेवा नहीं - नेक्स्टक्लाउड। हम निजी "फ़ाइल-साझाकरण क्लाउड" बनाने के लिए नेक्स्टक्लाउड का उपयोग करते हैं। प्रत्येक ग्राहक के लिए, हम नेक्स्टक्लाउड के साथ एक अलग वीएम आवंटित करते हैं, और हम उन्हें "बाहर" नहीं दिखाना चाहते हैं। इसके बजाय, हम एक सामान्य रिवर्स प्रॉक्सी के माध्यम से अनुरोध करते हैं। यह समाधान अनुमति देता है:
1) उस सर्वर को हटा दें जिस पर क्लाइंट डेटा इंटरनेट से संग्रहीत है और
2) आईपी-एड्रेस सेव करें।
यह योजना इस तरह दिखती है:
यह स्पष्ट है कि योजना सरल है, क्योंकि वेब सेवाओं के बुनियादी ढांचे का संगठन आज के लेख का विषय नहीं है।
साथ ही इस लेख में, मैं अगलेक्लाउड की स्थापना और बुनियादी विन्यास को छोड़ दूंगा, खासकर जब से इस विषय पर हैबे पर सामग्री है। लेकिन मैं निश्चित रूप से सेटिंग्स दिखाऊंगा, जिसके बिना नेक्स्टक्लाउड प्रॉक्सी के पीछे काम नहीं करेगा।
मई:
नेक्स्टक्लाउड होस्ट 1 पर स्थापित है और http (एसएसएल के बिना) पर काम करने के लिए कॉन्फ़िगर किया गया है, इसमें केवल एक स्थानीय नेटवर्क इंटरफ़ेस और एक "ग्रे" आईपी पता 172.16.22.110 है।
आइए होस्ट 2 पर OpenLiteSpeed कॉन्फ़िगर करें। इसके दो इंटरफेस हैं, बाहरी (इंटरनेट पर दिखता है) और नेटवर्क पर एक आईपी पते के साथ आंतरिक 172.16.22.0/24
होस्ट 2 का बाहरी इंटरफ़ेस IP पता DNS नाम क्लाउड.कनेक्ट.लिंक है
उद्देश्य:
लिंक के माध्यम से इंटरनेट से प्राप्त करें'https://cloud.connect.link' (SSL) नेक्स्टक्लाउड को आंतरिक नेटवर्क पर।
Ubuntu 18.04.2 पर OpenLiteSpeed इंस्टॉल कर रहा है।
sudo ufw ssh अनुमति दें
sudo ufw डिफ़ॉल्ट आउटगोइंग की अनुमति दें
sudo ufw डिफ़ॉल्ट आवक से इनकार करते हैं
sudo ufw अनुमति http
sudo ufw allowhttps
sudo ufw से अनुमति दें आपका प्रबंधन मेजबान किसी भी पोर्ट 7080 के लिए
सुडो ufw सक्षम करें
OpenLiteSpeed को रिवर्स प्रॉक्सी के रूप में सेट करें।
चलिए वर्चुअलहोस्ट के तहत डायरेक्टरी बनाते हैं।
एलएसडब्ल्यूएस वेब इंटरफेस से वर्चुअल होस्ट को कॉन्फ़िगर करते हैं।
यूआरएल प्रबंधन खोलें http://cloud.connect.link:7080
डिफ़ॉल्ट लॉगिन/पासवर्ड: व्यवस्थापक/123456
वर्चुअल होस्ट जोड़ें (वर्चुअल होस्ट > जोड़ें)।
जोड़ते समय, एक त्रुटि संदेश दिखाई देगा - कॉन्फ़िगरेशन फ़ाइल गुम है। यह सामान्य है, इसे क्लिक टू क्रिएट पर क्लिक करके हल किया जा सकता है।
सामान्य टैब में, दस्तावेज़ रूट निर्दिष्ट करें (हालांकि इसकी आवश्यकता नहीं है, इसके बिना कॉन्फ़िगरेशन शुरू नहीं होगा)। डोमेन नाम, यदि निर्दिष्ट नहीं है, तो वर्चुअल होस्ट नाम से लिया जाएगा, जिसे हमने अपना डोमेन नाम दिया है।
अब यह याद रखने का समय आ गया है कि हमारे पास सिर्फ एक वेब सर्वर नहीं है, बल्कि एक रिवर्स प्रॉक्सी है। निम्नलिखित सेटिंग्स LSWS को बताएगी कि क्या और कहाँ प्रॉक्सी करना है। वर्चुअलहोस्ट सेटिंग्स में, बाहरी ऐप टैब खोलें और वेब सर्वर प्रकार का एक नया एप्लिकेशन जोड़ें:
नाम और पता बताएं। आप एक मनमाना नाम निर्दिष्ट कर सकते हैं, लेकिन आपको इसे याद रखने की आवश्यकता है, यह अगले चरणों में काम आएगा। पता वह है जहां नेक्स्टक्लाउड आंतरिक नेटवर्क में रहता है:
उसी वर्चुअल होस्ट सेटिंग्स में, प्रसंग टैब खोलें और प्रॉक्सी प्रकार का एक नया प्रसंग बनाएँ:
पैरामीटर निर्दिष्ट करें: URI = /, वेब सर्वर = nextcloud_1 (पिछले चरण से नाम)
एलएसडब्ल्यूएस को पुनरारंभ करें। यह वेब इंटरफेस, चमत्कार से एक क्लिक के साथ किया जाता है! (एक वंशानुगत माउस वाहक मुझमें बोलता है)
हम प्रमाण पत्र डालते हैं, https को कॉन्फ़िगर करते हैं। प्रमाण पत्र प्राप्त करने की प्रक्रिया हम इसे छोड़ देंगे, सहमत होंगे कि हमारे पास पहले से ही यह है और /etc/letsencrypt/live/cloud.connect.link निर्देशिका में कुंजी के साथ स्थित है।
चलिए एक "श्रोता" (श्रोता> जोड़ें) बनाते हैं, चलिए इसे "https" कहते हैं। इसे पोर्ट 443 पर इंगित करें और ध्यान दें कि यह सुरक्षित होगा:
एसएसएल टैब में, कुंजी और प्रमाणपत्र के लिए पथ निर्दिष्ट करें:
"श्रोता" बनाया गया है, अब वर्चुअल होस्ट मैपिंग सेक्शन में हम अपने वर्चुअल होस्ट को इसमें जोड़ेंगे:
यदि LSWS केवल एक सेवा के लिए प्रॉक्सी करेगा, तो कॉन्फ़िगरेशन पूर्ण हो सकता है। लेकिन हम डोमेन नाम के आधार पर अलग-अलग "इंस्टेंसेस" को अनुरोध भेजने के लिए इसका उपयोग करने की योजना बना रहे हैं। और सभी डोमेन के अपने प्रमाणपत्र होंगे। इसलिए, आपको वर्चुअलहोस्ट कॉन्फ़िगरेशन पर जाने और फिर से एसएसएल टैब में इसकी कुंजी और प्रमाणपत्र निर्दिष्ट करने की आवश्यकता है। भविष्य में, यह प्रत्येक नए वर्चुअल होस्ट के लिए किया जाना चाहिए।
यह यूआरएल पुनर्लेखन को कॉन्फ़िगर करने के लिए बनी हुई है ताकि http अनुरोधों को https पर संबोधित किया जा सके। (वैसे, यह कब समाप्त होगा? यह ब्राउज़रों और अन्य सॉफ़्टवेयर के लिए डिफ़ॉल्ट रूप से https पर जाने का समय है, और यदि आवश्यक हो तो मैन्युअल रूप से नो-एसएसएल पर अग्रेषित करें)।
पुनर्लेखन सक्षम करें चालू करें और पुनर्लेखन नियम लिखें:
एक अजीब गलतफहमी के कारण, सामान्य ग्रेसफुल रिस्टार्ट के साथ पुनर्लेखन नियमों को लागू करना असंभव है। इसलिए, हम LSWS को शालीनता से नहीं, बल्कि असभ्य और कुशलता से पुनः आरंभ करेंगे:
sudo systemctl lsws.service को पुनरारंभ करें
सर्वर को पोर्ट 80 सुनने के लिए, चलिए एक और श्रोता बनाते हैं। आइए इसे http कहते हैं, 80वां पोर्ट निर्दिष्ट करें और यह गैर-सुरक्षित होगा:
Https श्रोता सेटिंग के अनुरूप, आइए अपने वर्चुअल होस्ट को इसमें संलग्न करें।
अब एलएसडब्ल्यूएस पोर्ट 80 पर सुनेगा और यूआरएल को फिर से लिखकर 443 को अनुरोध भेजेगा।
अंत में, मैं एलएसडब्ल्यूएस लॉगिंग स्तर को कम करने की सलाह देता हूं, जो डिफ़ॉल्ट रूप से डीबग पर सेट है। इस मोड में, लॉग बिजली की गति से गुणा करते हैं! अधिकांश मामलों के लिए, चेतावनी स्तर पर्याप्त होता है। सर्वर कॉन्फ़िगरेशन> लॉग पर जाएं:
यह रिवर्स प्रॉक्सी के रूप में OpenLiteSpeed के कॉन्फ़िगरेशन को पूरा करता है। एक बार फिर, LSWS को पुनरारंभ करें, लिंक का अनुसरण करें https://cloud.connect.link और देखो:
नेक्स्टक्लाउड हमें अंदर आने दे इसके लिए हमें क्लाउड.कनेक्ट.लिंक डोमेन को विश्वसनीय सूची में जोड़ना होगा। चलिए चलते हैं config.php संपादित करें। मैंने Ubuntu को स्थापित करते समय नेक्स्टक्लाउड को स्वचालित रूप से स्थापित किया और कॉन्फ़िगरेशन यहाँ स्थित है: /var/snap/nextcloud/current/nextcloud/config.
Trusted_domains कुंजी में 'Cloud.connect.link' पैरामीटर जोड़ें:
इसके अलावा, उसी कॉन्फ़िगरेशन में, आपको हमारे प्रॉक्सी का आईपी पता निर्दिष्ट करना होगा। मैं इस तथ्य पर आपका ध्यान आकर्षित करता हूं कि पता निर्दिष्ट किया जाना चाहिए जो कि नेक्स्टक्लाउड सर्वर को दिखाई दे रहा है, अर्थात। स्थानीय LSWS इंटरफ़ेस का IP। इस कदम के बिना, नेक्स्टक्लाउड वेब इंटरफेस काम करता है, लेकिन एप्लिकेशन अधिकृत नहीं हैं।
बढ़िया, उसके बाद हम प्राधिकरण इंटरफ़ेस में आ सकते हैं:
समस्या हल हो गई! अब प्रत्येक क्लाइंट सुरक्षित रूप से अपने व्यक्तिगत url पर "फ़ाइल क्लाउड" का उपयोग कर सकता है, फ़ाइलों वाला सर्वर इंटरनेट से अलग हो गया है, भविष्य के क्लाइंट को सब कुछ समान प्राप्त होगा और एक भी अतिरिक्त आईपी पता प्रभावित नहीं होगा।
इसके अतिरिक्त, आप स्थैतिक सामग्री वितरित करने के लिए एक रिवर्स प्रॉक्सी का उपयोग कर सकते हैं, लेकिन नेक्स्टक्लाउड के मामले में, यह गति में ध्यान देने योग्य वृद्धि नहीं देगा। तो यह वैकल्पिक और वैकल्पिक है।
मुझे इस कहानी को साझा करने में खुशी हो रही है, मुझे उम्मीद है कि यह किसी के लिए उपयोगी होगी। यदि आप समस्या को हल करने के लिए और अधिक सुरुचिपूर्ण और कुशल तरीके जानते हैं, तो मैं टिप्पणियों के लिए आभारी रहूंगा!