Moje iskustvo s Pleskom

Želio bih podijeliti neke dojmove o nužnosti ili nepotrebnosti takve stvari kao što je upravljačka ploča za komercijalni web projekt s jednim poslužiteljem s administratorom koji radi na pola radnog vremena. Priča je počela prije nekoliko godina, kada su me prijatelji prijatelja zamolili da im pomognem u kupnji posla - stranice s vijestima - s tehničke strane. Trebalo je malo proniknuti u to što radi na čemu, pobrinuti se da su svi potrebni detalji preneseni u pravilnom obliku i volumenu te strateški osmisliti što se može poboljšati.

Moje iskustvo s Pleskom
Dogovor je bio sklopljen, violinist više nije bio potreban. Kraj. Ne baš.

Stranica je radila na dvojezgrenom VM-u od 4 GB na Linodeu, na nekom mahovinom Debian5 s ​​radnim vremenom od 400 dana i takvim popisom neažuriranih paketa. Web dio na CMS-u koji smo sami napisali, nginx, php5.3 FPM, mysql podešena Percona. U principu je upalilo.

Paralelno s razgovorima sa mnom, novi vlasnik je tražio programera koji bi projekt doveo do očekivanja. Pronađeno. Programer je procijenio promet i količine te zaključio da zna kako optimizirati i upravljati troškovima. Cijelu je stranicu preselio na zajednički hosting od 700 rubalja kojim upravlja njegov uobičajeni IS****er. Nekoliko dana kasnije uslijedio je još jedan poziv od vlasnika: "sve ide sporo i čini se da smo slomljeni." Pokušao sam ispraviti situaciju preko panela, ali nakon nekog vremena bezuspješnih pokušaja da promijenim PHP verziju ili rukovatelj iz fcgi u fpm, odustao sam i otišao u ljusku. Tamo sam našao uključeni debug koji je sijao cijelim internetom sa lozinkom od mišića, 777 na nekim folderima koji su do tada bili krekirani malwareom i sličnim glupostima. Vlasnik je shvatio i zaključio da nije u redu štedjeti na hostingu, programeru i adminu koji može pratiti kako stvari idu.

Idemo u RuVDS. Malo bliže od britanskog Linodea, a ako odjednom poželite pohraniti osobne podatke i sve to, nećete se morati seliti nigdje drugdje. Budući da je planirano proširenje projekta, uzeli smo VM za rast: 4 jezgre, 8 gigabajta memorije, 80 GB diska. Nije da ne znam kako ručno konfigurirati nginx konfiguracije, samo nisam imao entuzijazma raditi na ovom projektu tako intimno (vidi gore o honorarnom radu). Zato sam instalirao Plesk (ovdje ću izostaviti detalje instalacije, jer ih uglavnom nema: pokrenuo sam instalater, postavio lozinku za admina, unio ključ - to je sve), tada je bio 17.0. Osnovne postavke rade podnošljivo izvan kutije, tu je fail2ban i najnovije dostupne verzije PHP-a i nginxa. 

Vjerojatno vrijedi stati i objasniti zašto. Budući da takve stvari rijetko radim, a nemam nikakav poseban alat niti set priprema za svaki slučaj, bilo je jasno da je potrebna nekakva automatizacija osnovnih stvari, tako da prvo brzo, drugo sigurno i treće , sve najbolje prakse netko ih je već implementirao.

Pa sam ga instalirao. Uštedio sam puno vremena, ponovno pokretanje stranice na novom poslužitelju bilo je gotovo trenutno. Sve što je preostalo bilo je urediti mišićnu konfiguraciju, dajući joj pola memorije i povećavajući broj međuspremnika, i dati nginxu pola jezgri (Plesk ne dira globalne konfiguracije), i na par dana otići u ljusku pogledati na mysqltuner statistici. Da, i kupio sam plaćeni ImunifyAV iz kataloga proširenja kako bih se riješio preplavljenog zlonamjernog softvera. Pronađeno je oko 11000 zaraženih datoteka. Odvratnost je što su zamagljeni dijelovi koda uliveni u statiku, a ručno čišćenje bilo bi potpuno dosadno. Prvo sam probao ClamAV, ali, kako se pokazalo, on ne uzima takve stvari, ali ImunifyAV može. Štoviše, dezinficirane datoteke ostaju u radnom stanju, dio sa zlonamjernim softverom jednostavno se briše.

Aritmetika je jednostavna: 50 dolara mjesečno za VMku, 10 dolara za Plesk (zapravo manje, jer ste ga kupili odjednom na godinu dana uz dvomjesečni popust) i 3 dolara za antivirus. Ili puno novca za moje vrijeme, koje bih u početku potrošio na poslužitelju, ručno grabuljajući ove staje. Vlasnik je bio vrlo zadovoljan ovim aranžmanom.

Moje iskustvo s Pleskom
U međuvremenu su našli novog programera. S njim smo dogovorili raspodjelu odgovornosti, napravili poddomenu za testnu verziju i radovi su krenuli. Rezao je novu verziju stranice na Laravelu, a ja sam gledao fail2ban%).

Moje iskustvo s Pleskom
Zanimljivo, protok znatiželjnika ne prestaje i na popisu zabranjenih uvijek se nađe stotinjak adresa. Efekt je zanimljiv: konkretno, obično, ako se prijavim u ljusku, vidim oko 20000 30000-2 70 neuspješnih pokušaja prijave putem SSH-a na pozdravu. S uključenim fail0banom oko 2. Uloženo truda: XNUMX. Nažalost, nije bilo bez kapi masti. Prema zadanim postavkama, WAF (modsecurity) bio je napola omogućen: u načinu otkrivanja. To jest, upisao je sumnjivu aktivnost u dnevnik, ali zapravo nije ništa poduzeo. I failXNUMXban je neselektivno čitao sve logove, prema omogućenim zatvorima, i ubijao sve što se pomaknulo. Tako smo banovali pola urednika :D. Morao sam onemogućiti ovaj zatvor i staviti na bijeli popis potrebnih IP adresa radi pouzdanosti. Uloženi su napori: dvaput bocnite mišem i naučite urednike da vam kažu vašu IP adresu.

Moje iskustvo s Pleskom
Ono što se programeru odmah svidjelo bila je mogućnost učitavanja baza podataka izravno u panel i brzi pristup phpMyAdmin-u

Moje iskustvo s Pleskom
Ono što mi se svidjelo su zapisnici i sigurnosne kopije. Dnevnici se pišu i okreću izvan kutije; Sigurnosne kopije vrlo je jednostavno postaviti. U najsporijim trenucima radi se full backup, oko 10 giga, a onda svaki dan jedan inkrementalni, po 200 megabajta, tjedan dana. Oporavak je detaljan, sve do određene datoteke ili baze podataka. Ako trebate vratiti iz inkrementalnog, onda se ne trebate mučiti s punim i vraćanjem cijelog lanca, Plesk radi sve sam. Sigurnosne kopije možete prenijeti bilo gdje: na FTP, dropbox, s3 spremnik, google disk itd.

Moje iskustvo s Pleskom
Dan F: programer je konačno dovršio novi motor, uploadali smo ga u proizvodnju, uvezli stare podatke i sjeli odabrati boju našeg budućeg Maseratija. Još uvijek sjedimo i biramo.

Počeli su prvi problemi. Nova je stranica bila očekivano teža od stare, ali prava je korist bila to što su za privlačenje prometa koristili, između ostalog, Yandex.Zen, koji je doveo gomilu posjetitelja. Stranica se srušila sa 150 istovremenih konekcija (ne govorim o RPS-u, jer ga nisu mjerili). Počeli smo gurati gumbe i okretati gumbe u području postavki php_fpm:
 
Moje iskustvo s Pleskom
Hej, on već ima 500 veza. Kako su se kreditne kartice dodavale sredstvima promocije, valovi prometa postajali su sve veći. Sljedeća prekretnica je 1000 istodobnih veza. Ovdje smo morali doraditi kod i pogledati u dušu mišića. Prskanje nije pomoglo, ali nismo to baš očekivali. Omogućili smo dnevnik sporih upita, dodali indekse u bazu podataka, uklonili nepotrebne upite iz koda i još jednom očistili mysql konfiguraciju prema savjetima mysqltunera.

Novi izazov - 2000 veza. Upravo je uspjela izaći verzija Pleska 17.8 u kojoj je, između ostalog, dodano i nginx caching. Ažurirano (iznenađujuće jednostavno). Pokušajmo. Djela! A onda su zakoračili na meku stranu, Yandex.Zen feed je prestao raditi. Stranica radi, feed ne radi. Feed ne radi, nema prometa. Atmosfera se zahuktava. Pod pritiskom okolnosti i zbog nedostatka mašte, odmah sam otišao na strace i nginx i našao ono što sam tražio. Ispostavilo se da je u nekom trenutku glupi nginx predmemorirao zalutalu 500. pogrešku kao odgovor na Yandex get feed.xml. To je popravljeno dodavanjem iznimaka postavkama predmemorije:

Moje iskustvo s Pleskom
Jasno je da vlasnik treba VIŠE, valovi se polako povećavaju. Za sada se snalazimo, ali smo unaprijed počeli eksperimentirati s memcachedom, srećom Laravel ga podržava gotovo odmah. Nekako nisam želio ručno instalirati memcached samo da se "igram", pa sam instalirao docker sliku. Ravno s ploče.

Moje iskustvo s Pleskom
Pa dobro, lažem, morao sam ući u shell i instalirati modul preko pecla. Pravo na instrukcije. O povećanju prometa još se nema što govoriti, nije bilo dovoljno velikih priljeva. Motor stranice je spojen na localhost:11211, statistika je prikazana, memorija se troši. Ako ti se sviđa, vidjet ćemo što dalje. Ili ćemo ostaviti tako, ili ćemo "pravu" staviti ravno u Os. Ili pokušajmo redis na isti način

Zatim je bilo potrebno priložiti mailing listu. Nema releja, samo smtp provjera autentičnosti. Postavio sam poštansku adresu i koristim njezine podatke za slanje biltena putem PHP-a.

Moje iskustvo s Pleskom
Nedavno je izdan Plesk Obsidian (18.0), bez straha smo ažurirali na temelju prošlih iskustava. Sve je prošlo vrlo glatko, nema se što pričati. Ugodna stvar je što se kvaliteta sučelja uvelike poboljšala, postalo je modernije i postalo je praktičnije na nekim mjestima. Cool stvar Advanced Monitoring na Grafanu.

Moje iskustvo s Pleskom
Nisam se još bavio time u detalje, ali možete, primjerice, postaviti upozorenja za bilo koji parametar u svojoj e-pošti. Vlasniku, lol.

Dok govorim o sučelju, responzivno je i jako dobro radi na telefonu. U ranim fazama, dok smo pokušavali pronaći optimalne postavke za PHP i druge stvari, ovo je puno pomoglo. A pogotovo kada programer u naletu radnog entuzijazma nešto radi u 23:XNUMX, a ja u naletu radnog entuzijazma pijem votku u kupatilu i HITNO moram nešto promijeniti.

Moje iskustvo s Pleskom
Oh, usput. Slika pokazuje da se pojavio PHP Composer. Nismo se još igrali s tim, ali, recimo, za Laravel, može uštedjeti nekoliko prijava na shell i nešto vremena za instaliranje ovisnosti. Isti sustav postoji za Node.JS i Ruby.

S SSL-om je sve jednostavno. Ako se domena riješi prema očekivanjima, Let's Encrypt radi jednim klikom i zatim se sam ažurira, kako za samu domenu, tako i za poddomene, pa čak i usluge pošte.

Moje iskustvo s Pleskom
Sam Plesk kao softver trenutno je prilično ugodan i stabilan. Ažurira sebe i Axis tiho, troši malo resursa i radi glatko. Ne sjećam se ni da sam negdje stao na nešto, što bi bila očita mana proizvoda. Bilo je problema, naravno, ali ili zbog nesavršene konfiguracije ili negdje na spoju, tako da se nema što žaliti. Dojmovi rada s Pleskom općenito su ugodni. Ono čega nema, a to moramo razumjeti, je bilo kakvo (bilo kakvo) grupiranje. Ni LB ni HA. Možete pokušati, ali trud će biti toliki da je bolje učiniti nešto drugačije od početka.

Mislim da to možemo sažeti. Za slučaj kada nema administratora, ili ga nema dovoljno, kada cijena hostinga i stranica koje se na njemu vrte prelazi, pa recimo, 100 USD, kada ne govorimo o bestijalnom dijeljenju od 1500 web-mjesta na poslužitelju, kada se donositelj odluka suoči s Ako imate izbor zaposliti administratora na pola radnog vremena, ili kupiti softver i imati administratora za pola dolara, ili ga uopće nemati - to definitivno ima smisla. Sa stajališta udaljenog administratora - ista stvar. 10$ mjesečno, a štedi vrijeme i daje fleksibilnost u radu na jako dugo vrijemeоveću količinu. Ako se od mene, primjerice, snažno zatraži da pod svoje okrilje uzmem sličan projekt, inzistirat ću na tome da ga prebacim u Plesk.

Moje iskustvo s Pleskom

Izvor: www.habr.com

Dodajte komentar