Moje izkušnje s Pleskom

Rad bi delil nekaj vtisov o nujnosti ali nepotrebnosti takšne stvari, kot je nadzorna plošča za komercialni enostrežniški spletni projekt z zelo honorarnim skrbnikom. Zgodba se je začela pred nekaj leti, ko so me prijatelji prijateljev prosili za pomoč pri nakupu podjetja - strani z novicami - s tehničnega vidika. Treba se je bilo malo poglobiti v to, kaj na čem deluje, poskrbeti, da so vse potrebne podrobnosti prenesene v pravi obliki in obsegu, ter strateško ugotoviti, kaj bi se dalo izboljšati.

Moje izkušnje s Pleskom
Posel je bil sklenjen, violinist ni bil več potreben. Konec. res ne.

Stran je delovala na dvojedrnem 4-GB VM na Linode, na nekem mahovitem Debian5 s ​​časom delovanja 400 dni in takim seznamom neposodobljenih paketov. Spletni del na samonapisanem CMS, nginx, php5.3 FPM, mysql prilagojeni Percona. Načeloma je delovalo.

Vzporedno s pogovori z mano je novi lastnik iskal programerja, ki bi projekt pripeljal do pričakovanj. Najdeno. Programer je ocenil promet in količine ter se odločil, da zna optimizirati in obvladovati stroške. Celotno spletno mesto je preselil na skupno gostovanje za 700 rubljev, ki ga upravlja njegov običajni IS****er. Nekaj ​​dni kasneje je sledil še en klic lastnika: "vse je počasi in zdi se, da smo se zlomili." Poskušal sem popraviti situacijo prek plošče, vendar sem po nekaj časa neuspešnih poskusih spremeniti različico PHP ali upravljalnik iz fcgi v fpm obupal in šel v lupino. Tam sem našel omogočen debug, ki je blestel na celem internetu z geslom od mišice, 777 na neke mape, ki so do takrat pokale z malwareom in podobnimi neumnostmi. Lastnik je ugotovil in se odločil, da je narobe varčevati pri gostovanju, programerju in adminu, ki lahko spremlja, kako se stvari odvijajo.

Gremo v RuVDS. Malo bližje kot britanski Linode, in če nenadoma želite shraniti osebne podatke in vse to, se vam ne bo treba preseliti nikamor drugam. Ker je bil projekt načrtovan za razširitev, smo vzeli VM za rast: 4 jedra, 8 gigabajtov pomnilnika, 80 GB diska. Ne gre za to, da ne znam ročno konfigurirati konfiguracije nginx, preprosto nisem imel navdušenja, da bi tako intimno delal na tem projektu (glejte zgoraj o krajšem delovnem času). Zato sem namestil Plesk (tukaj bom izpustil podrobnosti o namestitvi, ker jih na splošno ni: zagnal sem namestitveni program, nastavil geslo za skrbnika, vnesel ključ - to je vse), takrat je bil 17.0. Osnovne nastavitve delujejo znosno izven škatle, tu je fail2ban in zadnji razpoložljivi različici PHP in nginx. 

Verjetno se je vredno ustaviti in pojasniti, zakaj. Ker se takšnih stvari redko lotim in nimam posebnih orodij ali nabora priprav za vsak primer posebej, je bilo jasno, da je potrebna nekakšna avtomatizacija osnovnih stvari, tako da prvič hitro, drugič varno in tretjič , vse najboljše prakse je nekdo že implementiral.

Inštaliral sem ga. Prihranil sem veliko časa, ponovni zagon strani na novem strežniku je bil skoraj trenuten. Vse, kar je ostalo, je bilo urediti konfiguracijo mišice, ji dati polovico pomnilnika in povečati število vmesnih pomnilnikov ter dati nginxu polovico jeder (Plesk se ne dotika globalnih konfiguracij) in za nekaj dni iti v lupino pogledat pri statistiki mysqltuner. Da, in kupil sem plačljivi ImunifyAV iz kataloga razširitev, da se znebim poplavljene zlonamerne programske opreme. Najdenih je bilo približno 11000 okuženih datotek. Gnusoba je v tem, da so bili v statiko vsuti zamegljeni deli kode in ročno čiščenje bi bilo popolnoma dolgočasno. Najprej sem poskusil ClamAV, vendar se je izkazalo, da ne sprejme takih stvari, ampak ImunifyAV bi lahko. Poleg tega razkužene datoteke ostanejo v delovnem stanju, kos z zlonamerno programsko opremo se preprosto izbriše.

Aritmetika je enostavna: 50 $ na mesec za VMka, 10 $ za Plesk (pravzaprav manj, ker ste ga kupili za eno leto naenkrat z dvomesečnim popustom) in 3 $ za antivirus. Ali pa veliko denarja za svoj čas, ki bi ga sprva porabil za strežnik in ročno grabil te hleve. Lastnik je bil zelo zadovoljen s to ureditvijo.

Moje izkušnje s Pleskom
Vmes so našli novega programerja. Z njim smo se dogovorili za razdelitev odgovornosti, naredili poddomeno za testno verzijo in delo se je začelo. Rezal je novo različico spletnega mesta na Laravelu, jaz pa sem gledal fail2ban%).

Moje izkušnje s Pleskom
Zanimivo je, da se tok radovednežev ne ustavi in ​​na seznamu prepovedanih je vedno okoli sto naslovov. Učinek je zanimiv: zlasti običajno, če se prijavim v lupino, vidim na pozdravu približno 20000-30000 neuspešnih poskusov prijave prek SSH. Z vključenim fail2ban okoli 70. Vloženega truda: 0. Žal ni šlo brez kapljice mazila. Privzeto je bil WAF (modsecurity) napol omogočen: v načinu odkrivanja. To pomeni, da je zapisal sumljivo dejavnost v dnevnik, vendar dejansko ni ukrepal. In fail2ban je nediskriminatorno prebral vse dnevnike, glede na omogočene zapore, in uničil vse, kar se je premaknilo. Tako smo banali pol urednikov :D. Moral sem onemogočiti ta zapor in dodati na belo listo potrebne naslove IP zaradi zanesljivosti. Vloženi so napori: dvakrat potisnite miško in naučite urednike, da vam povedo vaš IP naslov.

Moje izkušnje s Pleskom
Programerju je bilo takoj všeč možnost nalaganja baz podatkov neposredno v ploščo in hiter dostop do phpMyAdmin

Moje izkušnje s Pleskom
Všeč so mi bili dnevniki in varnostne kopije. Dnevniki se pišejo in vrtijo iz škatle; Varnostne kopije je zelo enostavno nastaviti. V najpočasnejših časih se naredi popolna varnostna kopija, približno 10 gigabajtov, nato pa vsak dan inkrementalna, po 200 megabajtov, en teden. Obnovitev je razdrobljena, do določene datoteke ali baze podatkov. Če morate obnoviti iz inkrementalne, potem se vam ni treba najprej truditi s polno in obnovitvijo celotne verige, Plesk naredi vse sam. Varnostne kopije lahko naložite kamor koli: na FTP, dropbox, vedro s3, google disk itd.

Moje izkušnje s Pleskom
Dan F: programer je končno dokončal nov motor, naložili smo ga v produkcijo, uvozili stare podatke in sedli izbirati barvo našega bodočega Maseratija. Še vedno sedimo in izbiramo.

Začele so se prve težave. Nova stran je bila pričakovano težja od stare, vendar je bila prava prednost ta, da so za privabljanje prometa med drugim uporabili Yandex.Zen, ki je prinesel ogromno obiskovalcev. Stran se je sesula s 150 hkratnimi povezavami (da ne govorim o RPS, ker ga niso merili). Začeli smo pritiskati na gumbe in vrteti gumbe v območju nastavitev php_fpm:
 
Moje izkušnje s Pleskom
Hej, ima že 500 povezav. Ko so bile sredstvom promocije dodane kreditne kartice, so se valovi prometa povečali. Naslednji mejnik je 1000 hkratnih povezav. Tukaj smo morali dodelati kodo in pogledati v dušo mišice. Čofotanje ni pomagalo, a tega res nismo pričakovali. Omogočili smo dnevnik počasnih poizvedb, dodali indekse v bazo podatkov, odstranili nepotrebne poizvedbe iz kode in ponovno počistili konfiguracijo mysql v skladu z nasveti mysqltunerja.

Nov izziv - 2000 povezav. Pravkar je uspelo izdati različico Pleska 17.8, v kateri je med drugim dodano predpomnjenje nginx. Posodobljeno (presenetljivo enostavno). Poskusimo. deluje! In potem so stopili na mehko stran, vir Yandex.Zen je prenehal delovati. Stran deluje, vir ne deluje. Vir ne deluje, ni prometa. Ozračje se segreva. Pod pritiskom okoliščin in zaradi pomanjkanja domišljije sem takoj šel na strace in nginx in našel, kar sem iskal. Izkazalo se je, da je na neki točki neumni nginx predpomnil zablodelo 500. napako kot odgovor na Yandex get feed.xml. Popravilo z dodajanjem izjem v nastavitve predpomnilnika:

Moje izkušnje s Pleskom
Jasno je, da lastnik potrebuje VEČ, valovi se počasi povečujejo. Zaenkrat se spopadamo, vendar smo že vnaprej začeli eksperimentirati z memcached, na srečo ga Laravel podpira skoraj takoj. Nekako nisem želel ročno namestiti memcached samo zato, da bi se »poigral«, zato sem namestil sliko dockerja. Direktno iz plošče.

Moje izkušnje s Pleskom
No, v redu, lažem, moral sem iti v shell in namestiti modul preko pecla. Kar tako naprej Navodila. O povečanju pretovora še ni kaj reči, ni bilo dovolj velikih prilivov. Mehanizem spletnega mesta je priključen na localhost:11211, statistika je prikazana, pomnilnik se porablja. Če vam je všeč, bomo videli, kaj bomo storili naprej. Ali bomo pustili tako, ali pa bomo "pravega" postavili kar v Axis. Ali pa poskusimo redis na enak način

Potem je bilo treba priložiti mailing listo. Brez relejev, samo avtentikacija smtp. Nastavil sem poštni naslov in njegove podatke uporabil za pošiljanje glasila prek PHP.

Moje izkušnje s Pleskom
Nedolgo nazaj je bil izdan Plesk Obsidian (18.0), brez strahu smo posodobili na podlagi preteklih izkušenj. Vse je potekalo zelo gladko, sploh ni o čem govoriti. Prijetno je, da se je kakovost vmesnika močno izboljšala, postal je sodobnejši in ponekod bolj priročen. Kul stvar Advanced Monitoring na Grafanu.

Moje izkušnje s Pleskom
Nisem se še podrobneje ukvarjal s tem, vendar lahko na primer nastavite opozorila za kateri koli parameter v svoji e-pošti. Lastniku, lol.

Ko že govorim o vmesniku, je odziven in na telefonu res dobro deluje. V zgodnjih fazah, ko smo poskušali najti optimalne nastavitve za PHP in druge stvari, je to zelo pomagalo. In še posebej, ko programer v navalu delovnega zanosa nekaj počne ob 23:XNUMX, jaz pa v navalu delovnega zanosa pijem vodko v kopalnici in moram NUJNO nekaj zamenjati.

Moje izkušnje s Pleskom
Oh, mimogrede. Slika prikazuje, da se je pojavil PHP Composer. Nismo se še igrali z njim, ampak, recimo, za Laravel lahko prihrani nekaj prijav v lupino in nekaj časa za nameščanje odvisnosti. Enak sistem obstaja za Node.JS in Ruby.

S SSL je vse preprosto. Če se domena razreši po pričakovanjih, se Let’s Encrypt izvede z enim klikom in se nato posodobi, tako za samo domeno kot za poddomene in celo poštne storitve.

Moje izkušnje s Pleskom
Sam Plesk kot programska oprema je trenutno precej prijeten in stabilen. Posodablja sebe in Axis tiho, porabi malo virov in deluje gladko. Sploh se ne spomnim, da sem nekje stopil na kaj, kar bi bila očitna napaka na izdelku. Težave so seveda bile, vendar so bile ali zaradi nepopolne konfiguracije ali nekje na stičišču, tako da se ni kaj pritoževati. Vtisi dela s Pleskom so na splošno prijetni. Česar nima in to moramo razumeti, je kakršno koli (kakršno koli) združevanje. Niti LB niti HA. Lahko poskusite, vendar bo vloženega truda tako veliko, da je bolje narediti nekaj drugače od začetka.

Mislim, da lahko povzamemo. Za primer, ko administratorja ni ali ga je premalo, ko cena gostovanja in strani, ki se na njem vrtijo, preseže no, recimo 100 USD, ko ne govorimo o bestialnem deljenju 1500 USD. strani na strežniku, ko se odločevalec sooči z Če imate možnost najeti skrbnika za krajši delovni čas ali kupiti programsko opremo in imeti skrbnika za pol denarja ali ga sploh nimate – je vsekakor smiselno. Z vidika oddaljenega skrbnika - ista stvar. 10 $ na mesec, prihrani čas in daje fleksibilnost pri delu za zelo dolgo časaоvečji znesek. Če me na primer močno prosijo, da vzamem podoben projekt pod svoje okrilje, bom vztrajal, da ga prenesem na Plesk.

Moje izkušnje s Pleskom

Vir: www.habr.com

Dodaj komentar