OpenLiteSpeed ​​के अंदर और बाहर Nextcloud: रिवर्स प्रॉक्सी कॉन्फ़िगर करें

आंतरिक नेटवर्क पर स्थित Nextcloud में प्रॉक्सी को रिवर्स करने के लिए OpenLiteSpeed ​​को कैसे कॉन्फ़िगर करें?


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


छवि


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


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


  1. उस सर्वर को हटा दें जिस पर क्लाइंट डेटा इंटरनेट से संग्रहीत है और
  2. IP पते सहेजें।

योजना इस प्रकार है:


छवि


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


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


यह देखते हुए: Nextcloud होस्ट 1 पर स्थापित है और http (SSL के बिना) के माध्यम से काम करने के लिए कॉन्फ़िगर किया गया है, इसमें केवल एक स्थानीय नेटवर्क इंटरफ़ेस और "ग्रे" आईपी पता 172.16.22.110 है।


हम मेजबान पर OpenLiteSpeed ​​को कॉन्फ़िगर करेंगे। इसमें दो इंटरफेस हैं, एक बाहरी (इंटरनेट पर दिखता है) और एक आंतरिक नेटवर्क पर आईपी पते के साथ एक आंतरिक 172.16.22.0/24


DNS नाम cloud.connect.link होस्ट 2 के बाहरी इंटरफ़ेस के आईपी पते की ओर जाता है


कार्य: आंतरिक नेटवर्क पर Nextcloud के लिंक ' https://cloud.connect.link ' (SSL) के माध्यम से इंटरनेट से प्राप्त करने के लिए।


  • Ubuntu 18.04.2 पर OpenLiteSpeed ​​स्थापित करें।

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


wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh | sudo bash
sudo apt-get update

सेट करें, चलाएं:


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

  • फ़ायरवॉल को छोटा करें।
    सूद ufw ssh अनुमति देते हैं
    सूद ufw डिफ़ॉल्ट जावक की अनुमति है
    sudo ufw डिफ़ॉल्ट इनकार आने वाली
    sudo ufw http की अनुमति दें
    sudo ufw अनुमति दें https
    sudo ufw आपके प्रबंधन होस्ट से किसी भी पोर्ट 7080 को अनुमति देता है
    सूद ufw सक्षम करें
  • OpenLiteSpeed ​​को रिवर्स प्रॉक्सी के रूप में सेट करें।
    Virtualhost के लिए निर्देशिका बनाएँ।
    सीडी / यूएसआर / स्थानीय / lsws /
    sudo mkdirc cloud.connect.link
    सीडी क्लाउड.कनेक्ट.लिंक /
    sudo mkdir {conf, html, लॉग्स}
    सुडो चोंड लसदम: लसदम ./conf/

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


छवि


वर्चुअल होस्ट (वर्चुअल होस्ट> जोड़ें) जोड़ें।


जोड़ते समय, एक त्रुटि संदेश दिखाई देगा - कोई कॉन्फ़िगरेशन फ़ाइल नहीं है। यह सामान्य है, बनाने के लिए क्लिक करें पर क्लिक करके हल किया गया है।


छवि


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


छवि


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


छवि


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


छवि


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


छवि


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


छवि


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


छवि


छवि



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


छवि


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


छवि


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


छवि


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


छवि


यह url पुनर्लेखन को कॉन्फ़िगर करने के लिए बना हुआ है ताकि http अनुरोध https को संबोधित हो।


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


% ReriteCond% {SERVER_PORT} 80
RewriteRule ^ (। *) $ Https: //% {SERVER_NAME}% {REQUEST_URI } [R = 301, L]

छवि


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


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

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


छवि


Https श्रोता सेटअप के साथ सादृश्य करके, हम अपने वर्चुअल होस्ट को इसमें संलग्न करते हैं।


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


छवि


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


छवि


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


Trust_domains कुंजी के लिए, 'cloud.connect.link' पैरामीटर जोड़ें:


'Trust_domains' =>
सरणी (
0 => '172.16.22.110',
1 => 'cloud.connect.link',
)

छवि


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


'Trust_proxies' =>
सरणी (
0 => '172.16.22.100',
)

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


छवि


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


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

Source: https://habr.com/ru/post/hi452750/


All Articles