Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Ինչպե՞ս կարգավորել OpenLiteSpeed-ը ներքին ցանցում վստահված անձին Nextcloud-ին հակադարձելու համար:

Զարմանալիորեն, Habré-ում OpenLiteSpeed-ի որոնումը ոչինչ չի տալիս: Ես շտապում եմ ուղղել այս անարդարությունը, քանի որ LSWS-ը պարկեշտ վեբ սերվեր է։ Ես սիրում եմ այն ​​իր արագության և վեբ կառավարման շքեղ ինտերֆեյսի համար.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Թեև OpenLiteSpeed-ը առավել հայտնի է որպես WordPress-ի «արագացուցիչ», այսօրվա հոդվածում ես ցույց կտամ դրա բավականին կոնկրետ օգտագործումը: Մասնավորապես՝ հարցումների հակադարձ պրոքսիավորում (հակադարձ վստահված անձ): Դուք ասում եք, որ ավելի տարածված է դրա համար օգտագործել nginx: Ես կհամաձայնվեմ։ Բայց դա այնքան է ցավում, որ մենք սիրահարվեցինք LSWS-ին:

Proxying-ը լավ է, բայց որտեղ: Ոչ պակաս հրաշալի ծառայության մեջ՝ Nextcloud։ Մենք օգտագործում ենք Nextcloud-ը մասնավոր «ֆայլերի փոխանակման ամպեր» ստեղծելու համար։ Յուրաքանչյուր հաճախորդի համար մենք հատկացնում ենք առանձին VM Nextcloud-ի հետ, և մենք չենք ցանկանում դրանք բացահայտել «դրսում»: Փոխարենը, մենք պրոքսի հարցումներ ենք անում ընդհանուր հակադարձ վստահված անձի միջոցով: Այս լուծումը թույլ է տալիս.
1) ինտերնետից հեռացնել սերվերը, որի վրա պահվում են հաճախորդի տվյալները և
2) պահպանել ip-հասցեները:

Դիագրամն այսպիսի տեսք ունի.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Հասկանալի է, որ սխեման պարզեցված է, քանի որ վեբ ծառայությունների ենթակառուցվածքի կազմակերպումը այսօրվա հոդվածի թեման չէ։

Նաև այս հոդվածում ես բաց կթողնեմ nextcloud-ի տեղադրումն ու հիմնական կազմաձևումը, հատկապես, որ Հաբրեն այս թեմայի վերաբերյալ նյութեր ունի: Բայց ես անպայման ցույց կտամ կարգավորումները, առանց որոնց Nextcloud-ը չի աշխատի պրոքսիի հետևում։

Տրված է.
Nextcloud-ը տեղադրված է հոսթ 1-ում և կազմաձևված է http-ով աշխատելու համար (առանց SSL), ունի միայն տեղական ցանցի ինտերֆեյս և «մոխրագույն» IP հասցե 172.16.22.110:
Եկեք կարգավորենք OpenLiteSpeed-ը հոսթ 2-ի վրա: Այն ունի երկու ինտերֆեյս՝ արտաքին (տեսնում է ինտերնետին) և ներքին՝ IP հասցեով ցանցում 172.16.22.0/24:
Հոսթ 2-ի արտաքին ինտերֆեյսի IP հասցեն DNS անվանումն է՝ cloud.connect.link

Առաջադրանք.
Ստացեք ինտերնետից հղումով 'https://cloud.connect.link' (SSL) դեպի Nextcloud ներքին ցանցում:

  • OpenLiteSpeed-ի տեղադրում Ubuntu 18.04.2-ում:

Եկեք ավելացնենք պահեստ.

wget -O http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh |սուդո բաշ
sudo-get բն թարմացումը

տեղադրել, գործարկել:

sudo apt-get տեղադրել openlitespeed-ը
sudo /usr/local/lsws/bin/lswsctrl մեկնարկ

  • Firewall-ի նվազագույն կարգավորում:

    sudo ufw թույլ տալ ssh
    sudo ufw լռելյայն թույլ է տալիս ելքային
    sudo ufw լռելյայն մերժել մուտքային
    Սադո Օֆվը թույլ է տալիս http- ին
    sudo ufw թույլ է տալիսhttps
    sudo ufw թույլ տալ ից ձեր կառավարման հյուրընկալողը ցանկացած նավահանգիստ 7080
    sudo ufw հնարավորություն

  • Ստեղծեք OpenLiteSpeed-ը որպես հակադարձ վստահված անձ:
    Եկեք ստեղծենք դիրեկտորիաներ վիրտուալ հոսթի տակ:

    cd /usr/local/lsws/
    sudo mkdirc cloud.connect.link
    cd cloud.connect.link/
    sudo mkdir {conf, html, logs}
    sudo chown lsadm:lsadm ./conf/

Եկեք կարգավորենք վիրտուալ հոսթը LSWS վեբ ինտերֆեյսից:
Բացեք url-ի կառավարումը http://cloud.connect.link:7080
Կանխադրված մուտք/գաղտնաբառ՝ admin/123456

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Ավելացրեք վիրտուալ հոսթ (Վիրտուալ հյուրընկալողներ > Ավելացնել):
Ավելացնելիս կհայտնվի սխալի հաղորդագրություն՝ կազմաձևման ֆայլը բացակայում է: Սա նորմալ է, լուծվում է՝ սեղմելով «Սեղմիր՝ ստեղծելու համար»:

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Ընդհանուր ներդիրում նշեք Document Root-ը (չնայած դա անհրաժեշտ չէ, կոնֆիգուրը առանց դրա չի հանվի): Դոմենի անունը, եթե նշված չէ, կվերցվի Վիրտուալ Հոսթի Անվանից, որը մենք անվանել ենք մեր տիրույթի անուն:

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Այժմ ժամանակն է հիշել, որ մենք ունենք ոչ միայն վեբ սերվեր, այլ հակադարձ պրոքսի: Հետևյալ կարգավորումները LSWS-ին կտեղեկացնեն, թե ինչ և որտեղ պետք է վստահվի: Վիրտուալ հոսթի կարգավորումներում բացեք «Արտաքին հավելված» ներդիրը և ավելացրեք վեբ սերվերի տիպի նոր հավելված.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Նշեք անունը և հասցեն: Դուք կարող եք նշել կամայական անուն, բայց դուք պետք է հիշեք այն, այն օգտակար կլինի հաջորդ քայլերում: Հասցեն այն է, որտեղ Nextcloud-ը ապրում է ներքին ցանցում.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Նույն վիրտուալ հոսթի կարգավորումներում բացեք «Համատեքստ» ներդիրը և ստեղծեք վստահված անձի տիպի նոր համատեքստ.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Նշեք պարամետրերը՝ URI = /, Վեբ սերվեր = nextcloud_1 (նախորդ քայլի անունը)

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Վերագործարկեք LSWS-ը: Սա արվում է վեբ ինտերֆեյսից մեկ սեղմումով, հրաշքներ: (իմ մեջ խոսում է ժառանգական մկան կրողը)

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում
Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

  • Մենք դնում ենք վկայականը, կարգավորում ենք https-ը:
    Վկայական ստանալու կարգը մենք բաց կթողնենք այն, կհամաձայնենք, որ մենք արդեն ունենք այն և պառկած ենք բանալին /etc/letsencrypt/live/cloud.connect.link գրացուցակում:

Եկեք ստեղծենք «լսող» (Listeners > Add), եկեք այն անվանենք «https»: Ուղղեք այն դեպի 443 նավահանգիստ և նշեք, որ այն ապահով կլինի.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

SSL ներդիրում նշեք բանալին և վկայական տանող ուղին.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

«Լսողը» ստեղծվել է, այժմ Վիրտուալ հյուրընկալողի քարտեզագրում բաժնում մենք դրան կավելացնենք մեր վիրտուալ հոսթը.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Եթե ​​LSWS-ը վստահված է միայն մեկ ծառայության, ապա կազմաձևումը կարող է ավարտվել: Բայց մենք նախատեսում ենք օգտագործել այն տարբեր «ատյանների» հարցումներ ուղարկելու համար՝ կախված դոմենի անունից։ Եվ բոլոր տիրույթները կունենան իրենց վկայականները։ Հետևաբար, դուք պետք է գնաք virtualhost կոնֆիգուրացիա և կրկին նշեք դրա բանալին և վկայականը SSL ներդիրում: Ապագայում դա պետք է արվի յուրաքանչյուր նոր վիրտուալ հոսթի համար:

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Մնում է կարգավորել url-ի վերագրումը, որպեսզի http հարցումները հասցեագրվեն https-ին:
(Ի դեպ, սա ե՞րբ կավարտվի: Ժամանակն է, որ բրաուզերները և այլ ծրագրերը լռելյայնորեն անցնեն https և անհրաժեշտության դեպքում ձեռքով փոխանցեն ոչ-SSL):
Միացրեք Enable Rewrite-ը և գրեք Rewrite Rules:

RewriteCond% {SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Տարօրինակ թյուրիմացության պատճառով անհնար է կիրառել Rewrite կանոնները սովորական Graceful restart-ով։ Հետևաբար, մենք կվերագործարկենք LSWS-ը ոչ թե նրբագեղ, այլ կոպիտ և արդյունավետ.

sudo systemctl վերագործարկեք lsws.service

Որպեսզի սերվերը լսի 80-րդ նավահանգիստը, եկեք ստեղծենք մեկ այլ լսող: Եկեք այն անվանենք http, նշենք 80-րդ նավահանգիստը և որ այն կլինի ոչ անվտանգ.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

https ունկնդրի պարամետրի անալոգիայով, եկեք դրան կցենք մեր վիրտուալ հոսթը:

Այժմ LSWS-ը կլսի 80-րդ նավահանգիստը և հարցումներ կուղարկի դրանից 443-ին՝ վերագրելով url-ը:
Եզրափակելով, ես խորհուրդ եմ տալիս իջեցնել LSWS գրանցման մակարդակը, որը լռելյայն սահմանված է Debug-ի վրա: Այս ռեժիմում տեղեկամատյանները բազմապատկվում են կայծակնային արագությամբ: Շատ դեպքերում նախազգուշացման մակարդակը բավարար է: Գնալ դեպի Սերվերի կազմաձևում > Մատյան.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Սա ավարտում է OpenLiteSpeed-ի կազմաձևումը որպես հակադարձ վստահված անձի: Կրկին վերագործարկեք LSWS-ը, հետևեք հղմանը https://cloud.connect.link եւ տեսնել:

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Որպեսզի Nextcloud-ը մեզ ներս թողնի, մենք պետք է վստահելի ցուցակում ավելացնենք cloud.connect.link տիրույթը: Եկեք խմբագրենք config.php-ը: Ես տեղադրել եմ Nextcloud-ը ավտոմատ կերպով Ubuntu-ն տեղադրելիս, և կոնֆիգուրը գտնվում է այստեղ՝ /var/snap/nextcloud/current/nextcloud/config:
Ավելացրեք «cloud.connect.link» պարամետրը trusted_domains բանալիին՝

'trusted_domains' =>
զանգված (
0 => '172.16.22.110',
1 => 'cloud.connect.link',
),

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Ավելին, նույն կազմաձևում դուք պետք է նշեք մեր վստահված անձի IP հասցեն: Ես ձեր ուշադրությունը հրավիրում եմ այն ​​փաստի վրա, որ հասցեն պետք է նշվի այն հասցեով, որը տեսանելի է Nextcloud սերվերին, այսինքն. Տեղական LSWS ինտերֆեյսի IP-ն: Առանց այս քայլի, Nextcloud վեբ ինտերֆեյսը աշխատում է, բայց հավելվածները լիազորված չեն:

'trusted_proxies' =>
զանգված (
0 => '172.16.22.100',
),

Հիանալի է, դրանից հետո մենք կարող ենք մուտք գործել թույլտվության միջերես.

Nextcloud OpenLiteSpeed-ի ներսում և դրսում. հակադարձ պրոքսինգի կարգավորում

Խնդիրը լուծված! Այժմ յուրաքանչյուր հաճախորդ կարող է ապահով օգտագործել «ֆայլի ամպը» իր անձնական url-ով, ֆայլերով սերվերն անջատված է ինտերնետից, ապագա հաճախորդները կստանան ամեն ինչ նույնը, և ոչ մի լրացուցիչ IP հասցե չի ազդի:
Բացի այդ, դուք կարող եք օգտագործել հակադարձ պրոքսի ստատիկ բովանդակություն տրամադրելու համար, բայց Nextcloud-ի դեպքում դա արագության նկատելի աճ չի տա: Այսպիսով, դա կամընտիր է և կամընտիր:

Ուրախ եմ կիսվել այս պատմությամբ, հուսով եմ, որ այն օգտակար կլինի ինչ-որ մեկին: Եթե ​​դուք գիտեք ավելի էլեգանտ և արդյունավետ մեթոդներ խնդրի լուծման համար, ես շնորհակալ կլինեմ մեկնաբանությունների համար:

Source: www.habr.com

Добавить комментарий