Soovin jagada mĂ”ningaid muljeid sellise asja, nagu kommertshostinguprojekti juhtpaneel, vajalikkusest vĂ”i mittevajalikusest, kui administraator on peaaegu ajutine. Lugu algas paar aastat tagasi, kui tuttavad tuttavad palusid mind tehniliselt toetada Ă€riostu â uudisteveebilehe â osas. Tuli veidi sĂŒveneda, millega ollakse tegemist, jĂ€lgida, et kĂ”ik vajalikud andmed oleksid korrektselt edastatud ja strateegiliselt hinnata, mida oleks vĂ”imalik parandada.
Tehing Ônnestus, viiuldajat enam ei olnud. LÔpp. Tegelikult mitte.
Veebileht töötas kahetuumalises 4GB virtuaalmasinas Linode'il, vananenud Debian5 versiooniga, mille tööaeg oli 400 pĂ€eva ja sellise nimekirjaga mitteuuendatud pakette. Veebiossa ehitatud kohandatud sisu haldamise sĂŒsteem, nginx, php5.3 FPM, mysql oli hÀÀlestatud Percona. Ăldiselt, see töötas.
Samas kui vestlesime, otsis uus omanik programmeerijat, et kohandada projekti ootustele vastavaks. Ta leidis ĂŒhe. Programmeerija hindas liiklust ja mahtusid ning arvas, et suudab teha optimeerimist ja kuluhalduse. Ta migreeris kogu saidi 700-rubla jagatud hostingu peale, juhituna talle tuttavast IS****erist. MĂ”ne pĂ€eva pĂ€rast helistas omanik jĂ€lle: "kĂ”ik on aeglane ja tundub, et meid on Ă€ra rikutud". Ma proovisin olukorda parandada paneeli kaudu, kuid pĂ€rast mĂ”ningaid viljatuid katseid PHP versiooni vahetamiseks vĂ”i kĂ€itleja vahetamiseks fcgi-lt fpm-ile, andsin jĂ€rele ja lĂ€ksin shelli. Sealt leidsin sisse lĂŒlitatud silumise, mis nĂ€itas kogu internetile mĂŒĂŒgiautomaatse parooli, 777 mĂ”nedele kaustadele, mis sel ajal oligi ĂŒle koormatud pahavara ja muu sarnase jaburusega. Omanik sai aru ja otsustas, et majutusele, programmeerijale ja administraatorile, kes vaataks asju ĂŒhe silmaga, ei tasu kokku hoida.
Liigume RuVDS-ile. Veidi lĂ€hemal kui Briti Linode, ja kui peaks tekkima soov isiklikke andmeid salvestada ja kĂ”ike muud, ei pea enam kuhugi kolima. Kuna projekti oli plaanis laiendada, vĂ”tsime VM-i 'kasvuks': 4 tuumad, 8 GB mĂ€lu, 80 GB ketast. See ei tĂ€henda, et ma ei oskaks nginx-i konfiguratsioonifailidega tegeleda, lihtsalt mul polnud sellega nii intiimselt tegelemiseks piisavalt entusiasmi (vt ĂŒleval part-time kohta). Seega â paigaldasin Pleski (siin ma jĂ€tan paigalduse ĂŒksikasjad vĂ€lja, kuna neid pĂ”himĂ”tteliselt pole: kĂ€ivitasin installijat, seadistasin administraatori parooli, sisestasin vĂ”tme â kĂ”ik), sel ajal oli see versioon 17.0. PĂ”hiseaded töötavad talutavalt vĂ€lja kastist, saadaval on fail2ban ja viimased toetatavad PHP ja nginx versioonid.Â
VÔib-olla peaksin peatuma ja selgitama, miks just see. Kuna tegeletakse selliste asjadega harva ja mul ei ole mingit erilise tööriistade komplekti igaks juhuks, oli selge, et vajalik on mingisugune pÔhiasjade automatiseerimine, et esiteks kiiresti, teiseks turvaliselt ja kolmandaks, et kÔik parimad tavad oleks juba keegi rakendanud.
Nii, panin paika. SÀÀstsin korralikult aega, veebisaidi ĂŒmberkĂ€imine uuel serveril oli peaaegu kohene. Tuli vaid konfigureerida MySQL, andes talle poole mĂ€lu ja suurendades buffer poolide arvu, ning andma Nginxile poole tuumadest (Plesk ei puutu globaalsetesse seadistustesse), ning paar pĂ€eva hiljem kukkuda shelli, et vaadata mysqltunerit. Jah, ja ostsin tasulise ImunifyAV laiendite kataloogist, et vabaneda puperdatud pahavarast. Leidsin umbes 11 000 nakatunud faili. Ăudus seisnes selles, et staatilisse ossa voogas obfuskeeritud kooditĂŒkke, ning oleks olnud tĂ€iesti masendav seda kĂ€sitsi puhastada. Esiteks proovisin ClamAVd, aga nagu selgus, ei vĂ”ta ta selliseid asju, samas kui ImunifyAV suutis. KĂŒll aga jÀÀvad parendatud failid tööolekusse, lihtsalt kustutatakse pahavara osa.
Aritmeetika on lihtne: 50$ kuus virtuaalmaja eest, 10$ Pleski eest (tegelikult vÀhem, sest ostsime aasta alguses kahe kuu allahindlusega) ja 3$ antiviiruse eest. VÔi palju kohvreid raha minu aja eest, mille ma esialgu serveris nende sÔnnikute kÀsitsi koristamisega veedan. Omanikku selline arvestus tÀiesti rahuldas.

Samas leitiime uue programmeerija. Leppisime kokku vastutuste jaotamise, tegime testversiooni jaoks alamdomeeni ning töö kÀib. Ta arendab uut versiooni veebisaidist Laravelis, samas kui mina jÀlgin fail2bani%).

Huvitav, et uudishimulike voog ei peatu ja keelatud aadresside nimekirjas on alati umbes sada aadressi. Efekt on huvitav: nĂ€iteks, kui ma sisenen shell'i, nĂ€en tervituses umbes 20000-30000 ebaĂ”nnestunud SSH sisselogimise katset. Kaasa lĂŒlitatud fail2ban'is on see umbes 70. Pingutusi: 0. Kahjuks ei möödunud see ka ilma karmacita. Vaikimisi oli WAF (modsecurity) 'osaliselt sisse lĂŒlitatud': avastereĆŸiimis. See tĂ€hendab, et see registreeris kahtlase tegevuse logisse, kuid ei teinud tegelikult mingeid toiminguid. Fail2ban aga luges kĂ”iki logisid, vastavalt sisse lĂŒlitatud vanglatele, ja keelas kĂ”ik, mis liikuda pĂŒĂŒdis. Nii oleme hĂ€banud poole toimetuse :D. Pidin selle vangla vĂ€lja lĂŒlitama ja vajalikud IP-aadressid usaldusvÀÀrsuse jaoks valgesse nimekirja lisama. Pingutusi kokku: kaks korda hiirega klĂ”psata ja Ă”petada toimetajatele oma IP-aadressi ĂŒtlema.

Mis mulle kohe meeldis, oli vÔimalus laadida andmebaase otse paneelist ja kiire ligipÀÀs phpMyAdminile.

Mulle meeldisid logid ja varukoopiad. Logid genereeritakse ja roteeritakse automaatselt; varukoopia seadistamine on vÀga lihtne. Koguaeg rasketel aegadel luuakse tÀielik varukoopia, mis on umbes 10 gigabitti, ja seejÀrel iga pÀev inkrementaalne, suunaga umbes 200 megabitti nÀdalas. Taastamine on granulaarselt, kuni konkreetse faili vÔi andmebaasini. Kui soovite inkrementaalset taastada, siis ei pea te esmalt tÀisvarukoopiate ja kogu ahela taastamisega vaeva nÀgema, Plesk teeb kÔik ise. Varukoopiad saab laadida kuhugi: ftp-le, Dropboxi, S3 konteinerisse, Google Drive'i ja muudele.

D-pÀev: programmeerija lÔpuks lÔpetas uue mootori, oleme selle tootmisse laadinud, importinud vana teabe ja istunud valima oma tulevasi Maseratisid. Istume siiani ja valime.
Esmaste esimesed probleemid. Uus veebileht oli oodatust raskem, kuid tegelik mure oli see, et liikluse toomiseks kasutati muu hulgas Yandex.Zeni, mis tĂ”i kĂŒlastajaid suuremate hoogudega. Veebileht lagunes juba 150 samal ajal ĂŒhenduse korral (ma ei rÀÀgi RPS-ist, sest ei mÔÔtnud). Alustasime nuppude vajutamist ja seadistuste php_fpm piirkonnas keeramist:
Â

Oot, nĂŒĂŒd hoiab juba 500 ĂŒhendust. Krediidi rakendamisel reklaamifondide jaoks hakkasid liikluslaineid suurenema. JĂ€rgmine verstapost on 1000 samal ajal ĂŒhendust. Siin tuli juba koodi tĂ€iendama hakata ja vaadata musklite hinge. Plesk ei aidanud selles osas, kuid me ei oodanud ka erilisi tulemusi. LĂŒlitasime sisse aeglaste pĂ€ringute logi, panime andmebaasile uusi indekseid, eemaldasime koodist liigsed pĂ€ringud ja veel kord korrigeerisime Mysql konfiguratsiooni mysqltuner'i soovituste jĂ€rgi.
Uus vĂ€ljakutse â 2000 ĂŒhendust. Just jĂ”udis vĂ€lja versioon Plesk 17.8, kus muuhulgas ĂŒhendati nginx caching. Uuendasime (ĂŒllatavalt lihtsalt). Proovime. Töötab! Ja kohe lĂ”ppes see sujuvalt, Yandex Zen'i voog lakkas töötamast. Veebileht töötab, aga voog ei tööta. Kui voog ei tööta, puudub liiklus. AtmosfÀÀr muutub pingeliseks. Olukordade surve all ja inspiratsiooni puudusel otsustasin kohe nginx'it strace'ida ning avastasin, mida ta otsis. Selgub, et mingil hetkel oli rumal nginx cache'inud eksitavaid 500 vigu Yandexi get feed.xml-i vastusena. Parandasime, lisades erandid cache'i seadistustesse:

Muidugi on selge, et omanik vajab ROHKEM, lained tÔusevad tasapisi. Praegu saame hakkama, aga hakkasime eelnevalt eksperimenteerima memcached'iga, kuna Laravel toetab seda peaaegu vÀlja kutsega. Memcached'i kÀsitsi seadmine, et "mÀngida", ei olnud just kÔige soovitavam, seega paniime docker'i pildi. Otse juhtpaneelist.

No okei, ma valetasin, pidin siiski minema shell'i ja panema mooduli pecl'i kaudu. Otse . Suurenevast ribalaiusest pole veel midagi öelda, suuri laineid ei ole olnud. Veebimootor on ĂŒhendatud localhost:11211, statistika kuvatakse, mĂ€lu kulub. Kui meeldib, vaatame, mida edasi teha. Kas jĂ€tame nii vĂ”i installime "pĂ€ris" versiooni otse Ossi. VĂ”i proovime sarnasel viisil redisit.
Hiljem tuli seadistada e-posti massilise saatmise funktsioon. Ilma releedeta, ainult smtp autentimisega. Olen loonud e-posti adresi, mille kaudu PHP abil teeme saatmise.

Hiljuti ilmus Plesk Obsidian (18.0), vÀrskendasime oma varasema kogemuse pÔhjal kartmatult. KÔik lÀks vÀga sujuvalt, isegi rÀÀkida pole millestki. Positiivne on see, et kasutajaliides on kvaliteedi osas palju paranenud, moderniseeritud ning teatud kohtades mugavam. Lahe asi on Advanced Monitoring Grafanas.

Praegu pole ma selle peale veel pĂ”hjalikult sĂŒvenenud, kuid nĂ€iteks saab seadistada hĂ€ireid mis tahes parameetri puhul e-postile. Omanikule, haha.
Kuna ma rÀÀgin liidestest, siis see on kohandatav ja töötab tĂ”eliselt hĂ€sti telefonis. Varases etapis, kui pĂŒĂŒdsime leida optimaalseid PHP ja muude seadistusi, oli see meile suureks abiks. Eriti siis, kui programmeerija entusiastlikus tööhoo joob midagi kell 23, samal ajal kui mina positiivses tööhoos joon viina saunas, ja on KOHUTAVALT vaja midagi vahetada.

Oh, muide. Pildil on nĂ€htav PHP Composer. Me ei ole sellega veel katsetanud, aga ĂŒtleme nii, et see vĂ”ib nĂ€iteks Laravel'i puhul sÀÀsta paar sisselogimist terminali ja aega sĂ”ltuvuste paigaldamiseks. Sama sĂŒsteem on olemas ka Node.JS ja Ruby jaoks.
SSL-iga on kĂ”ik lihtne. Kui domeen suunab Ă”igesse kohta, on Letâs Encrypt ĂŒhe kliki kaugusel ja uuendab ennast ise, nii domeeni kui ka subdomeenide ja isegi postiteenuste jaoks.

Plesk on tarkvara, mis hetkel töötab ĂŒsna hĂ€sti ja stabiilselt. See uuendab end ning operatsioonisĂŒsteemi vaikides, tarbib vĂ€he ressursse ja töötab tĂ€pselt. Ma isegi ei mĂ€leta, et oleksin kuskil mingile probleemile peale astunud, mis oleks selgelt toote defekt. Probleeme on muidugi olnud, kuid need kas tulenesid konfiguratsiooni puudulikusest vĂ”i mĂ”nest ĂŒhenduspunktist, seega pole eriti millegi kallal norida. Töö Pleskiga on ĂŒldiselt positiivne. Mida seal ei ole, ja sellest tuleb aru saada, on igasugune (mis tahes) klasterdamine. Ei LB, ega HA. Proovida vĂ”ib, aga sinna kuluvate jĂ”upingutuste hulk on sedavĂ”rd suur, et parem on algselt midagi muud teha.
Arvan, et vĂ”iks kokku vĂ”tta. Kui administraatorit ei ole vĂ”i teda on vĂ€he, kui hostimise ja sellel töötava saidi(te) hind ĂŒletab, ĂŒtleme, 100 eurot, kui ei rÀÀgita inetust ĂŒksteisega jagatud serverist 1500 saidiga, kui otsustaja ees on valida, kas palkata administraator osalise koormusega, vĂ”i osta tarkvara ja palgata administraator 'poolte' jaoks, vĂ”i mitte palgata ĂŒldse â siis on selles kindlasti mĂ”te. Kaug-administraatori seisukohalt on sama asi. 10 dollarit kuus, samas sÀÀstab see aega ja annab paindlikkuse töös, vĂ€ga hea.osuurema summa. Kui, nĂ€iteks, mind vĂ€ga palutakse vĂ”tta sarnane projekt oma tiiva alla, siis ma insistin Pleskile ĂŒleviimise peale.
Allikas: habr.com
