OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

मैं आंतरिक नेटवर्क पर नेक्स्टक्लाउड के प्रॉक्सी को रिवर्स करने के लिए OpenLiteSpeed ​​​​कैसे सेट करूं?

हैरानी की बात है, Habré पर OpenLiteSpeed ​​​​की खोज कुछ भी नहीं देती है! मैं इस अन्याय को ठीक करने में जल्दबाजी करता हूं, क्योंकि एलएसडब्ल्यूएस एक अच्छा वेब सर्वर है। मुझे इसकी गति और फैंसी वेब प्रशासन इंटरफ़ेस के लिए यह पसंद है:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

भले ही OpenLiteSpeed ​​​​वर्डप्रेस "त्वरक" के रूप में सबसे प्रसिद्ध है, आज के लेख में मैं इसका एक विशिष्ट उपयोग दिखाऊंगा। अर्थात् अनुरोधों का रिवर्स प्रॉक्सी (रिवर्स प्रॉक्सी)। आप कहते हैं कि इसके लिए nginx का उपयोग करना अधिक सामान्य है? मैं सहमत हूँ। लेकिन यह इतना दर्द देता है कि हमें LSWS से प्यार हो गया!

प्रॉक्सी करना ठीक है, लेकिन कहाँ? कोई कम अद्भुत सेवा नहीं - नेक्स्टक्लाउड। हम निजी "फ़ाइल-साझाकरण क्लाउड" बनाने के लिए नेक्स्टक्लाउड का उपयोग करते हैं। प्रत्येक ग्राहक के लिए, हम नेक्स्टक्लाउड के साथ एक अलग वीएम आवंटित करते हैं, और हम उन्हें "बाहर" नहीं दिखाना चाहते हैं। इसके बजाय, हम एक सामान्य रिवर्स प्रॉक्सी के माध्यम से अनुरोध करते हैं। यह समाधान अनुमति देता है:
1) उस सर्वर को हटा दें जिस पर क्लाइंट डेटा इंटरनेट से संग्रहीत है और
2) आईपी-एड्रेस सेव करें।

यह योजना इस तरह दिखती है:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

यह स्पष्ट है कि योजना सरल है, क्योंकि वेब सेवाओं के बुनियादी ढांचे का संगठन आज के लेख का विषय नहीं है।

साथ ही इस लेख में, मैं अगलेक्लाउड की स्थापना और बुनियादी विन्यास को छोड़ दूंगा, खासकर जब से इस विषय पर हैबे पर सामग्री है। लेकिन मैं निश्चित रूप से सेटिंग्स दिखाऊंगा, जिसके बिना नेक्स्टक्लाउड प्रॉक्सी के पीछे काम नहीं करेगा।

मई:
नेक्स्टक्लाउड होस्ट 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 ​​​​इंस्टॉल कर रहा है।

आइए एक रिपॉजिटरी जोड़ें:

wget -ओ http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh |सुडो बैश
उपयुक्त sudo- मिल अद्यतन

स्थापित करें, चलाएँ:

sudo apt-get install ओपनलाइटस्पीड
सुडो/usr/स्थानीय/lsws/bin/lswsctrl प्रारंभ

  • न्यूनतम फ़ायरवॉल सेटअप।

    sudo ufw ssh अनुमति दें
    sudo ufw डिफ़ॉल्ट आउटगोइंग की अनुमति दें
    sudo ufw डिफ़ॉल्ट आवक से इनकार करते हैं
    sudo ufw अनुमति http
    sudo ufw allowhttps
    sudo ufw से अनुमति दें आपका प्रबंधन मेजबान किसी भी पोर्ट 7080 के लिए
    सुडो ufw सक्षम करें

  • OpenLiteSpeed ​​​​को रिवर्स प्रॉक्सी के रूप में सेट करें।
    चलिए वर्चुअलहोस्ट के तहत डायरेक्टरी बनाते हैं।

    सीडी / यूएसआर / स्थानीय / एलएसडब्ल्यूएस /
    सूडो mkdirc क्लाउड.कनेक्ट.लिंक
    सीडी क्लाउड.कनेक्ट.लिंक/
    सुडो एमकेडीआईआर {conf, एचटीएमएल, लॉग}
    सुडो चाउन lsadm: lsadm ./conf/

एलएसडब्ल्यूएस वेब इंटरफेस से वर्चुअल होस्ट को कॉन्फ़िगर करते हैं।
यूआरएल प्रबंधन खोलें http://cloud.connect.link:7080
डिफ़ॉल्ट लॉगिन/पासवर्ड: व्यवस्थापक/123456

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

वर्चुअल होस्ट जोड़ें (वर्चुअल होस्ट > जोड़ें)।
जोड़ते समय, एक त्रुटि संदेश दिखाई देगा - कॉन्फ़िगरेशन फ़ाइल गुम है। यह सामान्य है, इसे क्लिक टू क्रिएट पर क्लिक करके हल किया जा सकता है।

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

सामान्य टैब में, दस्तावेज़ रूट निर्दिष्ट करें (हालांकि इसकी आवश्यकता नहीं है, इसके बिना कॉन्फ़िगरेशन शुरू नहीं होगा)। डोमेन नाम, यदि निर्दिष्ट नहीं है, तो वर्चुअल होस्ट नाम से लिया जाएगा, जिसे हमने अपना डोमेन नाम दिया है।

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

अब यह याद रखने का समय आ गया है कि हमारे पास सिर्फ एक वेब सर्वर नहीं है, बल्कि एक रिवर्स प्रॉक्सी है। निम्नलिखित सेटिंग्स LSWS को बताएगी कि क्या और कहाँ प्रॉक्सी करना है। वर्चुअलहोस्ट सेटिंग्स में, बाहरी ऐप टैब खोलें और वेब सर्वर प्रकार का एक नया एप्लिकेशन जोड़ें:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

नाम और पता बताएं। आप एक मनमाना नाम निर्दिष्ट कर सकते हैं, लेकिन आपको इसे याद रखने की आवश्यकता है, यह अगले चरणों में काम आएगा। पता वह है जहां नेक्स्टक्लाउड आंतरिक नेटवर्क में रहता है:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

उसी वर्चुअल होस्ट सेटिंग्स में, प्रसंग टैब खोलें और प्रॉक्सी प्रकार का एक नया प्रसंग बनाएँ:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

पैरामीटर निर्दिष्ट करें: URI = /, वेब सर्वर = nextcloud_1 (पिछले चरण से नाम)

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

एलएसडब्ल्यूएस को पुनरारंभ करें। यह वेब इंटरफेस, चमत्कार से एक क्लिक के साथ किया जाता है! (एक वंशानुगत माउस वाहक मुझमें बोलता है)

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना
OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

  • हम प्रमाण पत्र डालते हैं, https को कॉन्फ़िगर करते हैं।
    प्रमाण पत्र प्राप्त करने की प्रक्रिया हम इसे छोड़ देंगे, सहमत होंगे कि हमारे पास पहले से ही यह है और /etc/letsencrypt/live/cloud.connect.link निर्देशिका में कुंजी के साथ स्थित है।

चलिए एक "श्रोता" (श्रोता> जोड़ें) बनाते हैं, चलिए इसे "https" कहते हैं। इसे पोर्ट 443 पर इंगित करें और ध्यान दें कि यह सुरक्षित होगा:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

एसएसएल टैब में, कुंजी और प्रमाणपत्र के लिए पथ निर्दिष्ट करें:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

"श्रोता" बनाया गया है, अब वर्चुअल होस्ट मैपिंग सेक्शन में हम अपने वर्चुअल होस्ट को इसमें जोड़ेंगे:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

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

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

यह यूआरएल पुनर्लेखन को कॉन्फ़िगर करने के लिए बनी हुई है ताकि http अनुरोधों को https पर संबोधित किया जा सके।
(वैसे, यह कब समाप्त होगा? यह ब्राउज़रों और अन्य सॉफ़्टवेयर के लिए डिफ़ॉल्ट रूप से https पर जाने का समय है, और यदि आवश्यक हो तो मैन्युअल रूप से नो-एसएसएल पर अग्रेषित करें)।
पुनर्लेखन सक्षम करें चालू करें और पुनर्लेखन नियम लिखें:

रीराइटकंड %{SERVER_PORT} 80
पुनर्लेखन नियम ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [आर = 301, एल]

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

एक अजीब गलतफहमी के कारण, सामान्य ग्रेसफुल रिस्टार्ट के साथ पुनर्लेखन नियमों को लागू करना असंभव है। इसलिए, हम LSWS को शालीनता से नहीं, बल्कि असभ्य और कुशलता से पुनः आरंभ करेंगे:

sudo systemctl lsws.service को पुनरारंभ करें

सर्वर को पोर्ट 80 सुनने के लिए, चलिए एक और श्रोता बनाते हैं। आइए इसे http कहते हैं, 80वां पोर्ट निर्दिष्ट करें और यह गैर-सुरक्षित होगा:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

Https श्रोता सेटिंग के अनुरूप, आइए अपने वर्चुअल होस्ट को इसमें संलग्न करें।

अब एलएसडब्ल्यूएस पोर्ट 80 पर सुनेगा और यूआरएल को फिर से लिखकर 443 को अनुरोध भेजेगा।
अंत में, मैं एलएसडब्ल्यूएस लॉगिंग स्तर को कम करने की सलाह देता हूं, जो डिफ़ॉल्ट रूप से डीबग पर सेट है। इस मोड में, लॉग बिजली की गति से गुणा करते हैं! अधिकांश मामलों के लिए, चेतावनी स्तर पर्याप्त होता है। सर्वर कॉन्फ़िगरेशन> लॉग पर जाएं:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

यह रिवर्स प्रॉक्सी के रूप में OpenLiteSpeed ​​​​के कॉन्फ़िगरेशन को पूरा करता है। एक बार फिर, LSWS को पुनरारंभ करें, लिंक का अनुसरण करें https://cloud.connect.link और देखो:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

नेक्स्टक्लाउड हमें अंदर आने दे इसके लिए हमें क्लाउड.कनेक्ट.लिंक डोमेन को विश्वसनीय सूची में जोड़ना होगा। चलिए चलते हैं config.php संपादित करें। मैंने Ubuntu को स्थापित करते समय नेक्स्टक्लाउड को स्वचालित रूप से स्थापित किया और कॉन्फ़िगरेशन यहाँ स्थित है: /var/snap/nextcloud/current/nextcloud/config.
Trusted_domains कुंजी में 'Cloud.connect.link' पैरामीटर जोड़ें:

'विश्वसनीय_डोमेन' =>
सरणी (
0 => '172.16.22.110',
1 => 'क्लाउड.कनेक्ट.लिंक',
),

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

इसके अलावा, उसी कॉन्फ़िगरेशन में, आपको हमारे प्रॉक्सी का आईपी पता निर्दिष्ट करना होगा। मैं इस तथ्य पर आपका ध्यान आकर्षित करता हूं कि पता निर्दिष्ट किया जाना चाहिए जो कि नेक्स्टक्लाउड सर्वर को दिखाई दे रहा है, अर्थात। स्थानीय LSWS इंटरफ़ेस का IP। इस कदम के बिना, नेक्स्टक्लाउड वेब इंटरफेस काम करता है, लेकिन एप्लिकेशन अधिकृत नहीं हैं।

'विश्वसनीय_प्रॉक्सी' =>
सरणी (
0 => '172.16.22.100',
),

बढ़िया, उसके बाद हम प्राधिकरण इंटरफ़ेस में आ सकते हैं:

OpenLiteSpeed ​​के अंदर और बाहर नेक्स्टक्लाउड: रिवर्स प्रॉक्सिंग की स्थापना

समस्या हल हो गई! अब प्रत्येक क्लाइंट सुरक्षित रूप से अपने व्यक्तिगत url पर "फ़ाइल क्लाउड" का उपयोग कर सकता है, फ़ाइलों वाला सर्वर इंटरनेट से अलग हो गया है, भविष्य के क्लाइंट को सब कुछ समान प्राप्त होगा और एक भी अतिरिक्त आईपी पता प्रभावित नहीं होगा।
इसके अतिरिक्त, आप स्थैतिक सामग्री वितरित करने के लिए एक रिवर्स प्रॉक्सी का उपयोग कर सकते हैं, लेकिन नेक्स्टक्लाउड के मामले में, यह गति में ध्यान देने योग्य वृद्धि नहीं देगा। तो यह वैकल्पिक और वैकल्पिक है।

मुझे इस कहानी को साझा करने में खुशी हो रही है, मुझे उम्मीद है कि यह किसी के लिए उपयोगी होगी। यदि आप समस्या को हल करने के लिए और अधिक सुरुचिपूर्ण और कुशल तरीके जानते हैं, तो मैं टिप्पणियों के लिए आभारी रहूंगा!

स्रोत: www.habr.com

एक टिप्पणी जोड़ें