Moje iskustvo sa Pleskom

Želeo bih da podelim neke utiske o neophodnosti ili nepotrebnosti takve stvari kao što je kontrolni panel za komercijalni web projekat sa jednim serverom sa administratorom koji radi na pola radnog vremena. Priča je počela prije nekoliko godina, kada su me prijatelji prijatelja zamolili da sa tehničke tačke gledišta pomognem u kupovini biznisa - web stranice s vijestima. Trebalo je malo proniknuti u ono na čemu se radi, uvjeriti se da su svi potrebni detalji prenijeti u odgovarajućem obliku i obimu, te strateški smisliti šta bi se moglo poboljšati.

Moje iskustvo sa Pleskom
Posao je završen, violinista više nije bio potreban. Kraj. Ne baš.

Stranica je radila na dual-core VM-u od 4 GB na Linodeu, na nekom mahovinom Debian5 s ​​trajanjem od 400 dana i takvom listom neažuriranih paketa. Web dio na samostalno pisanom CMS-u, nginx, php5.3 FPM, mysql podešen Percona. U principu, funkcioniralo je.

Paralelno sa razgovorima sa mnom, novi vlasnik je tražio programera koji bi projekat doveo do očekivanja. Pronađen. Programer je procijenio promet i obim i odlučio da zna kako optimizirati i upravljati troškovima. Migrirao je cijelu stranicu na dijeljeni 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 pokvareni." Pokušao sam da ispravim situaciju preko panela, ali nakon nekog vremena bezuspješnih pokušaja da promijenim PHP verziju ili obrađivač iz fcgi u fpm, odustao sam i ušao u shell. Tamo sam našao omogućen debug koji je sijao na cijelom internetu sa lozinkom od mišića, 777 na nekim folderima koji su do tada pucali od malwarea i sličnih gluposti. Vlasnik je shvatio i odlučio da nije u redu štedjeti na hostingu, programeru i administratoru koji može paziti kako se stvari odvijaju.

Idemo u RuVDS. Malo bliže od britanskog Linodea, a ako odjednom poželite da pohranite lične podatke i sve ovo, nećete morati da se selite nigde drugde. 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 da ručno konfigurišem nginx konfiguracije, jednostavno nisam imao entuzijazma da radim na ovom projektu tako intimno (vidi gore o pola radnog vremena). Zato sam instalirao Plesk (ovdje ću izostaviti detalje instalacije, jer ih uglavnom nema: pokrenuo sam instalater, postavio lozinku za administratora, unio ključ - to je sve), tada je bio 17.0. Osnovna podešavanja rade podnošljivo izvan kutije, tu je fail2ban i najnovije dostupne verzije PHP-a i nginxa. 

Verovatno je vredno stati i objasniti zašto. S obzirom da rijetko radim takve stvari, a nemam nikakve posebne alate ili set priprema za svaki slučaj, bilo je jasno da je potrebna neka vrsta automatizacije osnovnih stvari, tako da prvo brzo, drugo, sigurno i treće , sve najbolje prakse neko je već implementirao.

Pa sam ga instalirao. Uštedio sam dosta vremena, ponovno pokretanje stranice na novom serveru bilo je gotovo trenutno. Ostalo je samo urediti mišićnu konfiguraciju, dajući joj pola memorije i povećajući broj pufera bafera, i dati nginx-u pola jezgri (Plesk ne dira globalne konfiguracije), i na par dana otići u shell da pogledam na mysqltuner statistici. Da, i kupio sam plaćeni ImunifyAV iz kataloga ekstenzija da se riješim preplavljenog zlonamjernog softvera. Pronađeno je oko 11000 zaraženih fajlova. Odvratno je to što su zamućeni komadi koda izliveni u statiku, a ručno čišćenje bi bilo potpuno dosadno. Prvo sam probao ClamAV, ali, kako se ispostavilo, takve stvari nisu potrebne, ali bi ImunifyAV mogao. Štaviše, dezinficirani fajlovi ostaju u radnom stanju; komad sa malverom se jednostavno briše.

Aritmetika je jednostavna: 50 dolara mjesečno za VMka, 10 dolara za Plesk (u stvari manje, jer ste ga kupili na godinu dana sa dvomjesečnim popustom) i 3 dolara za antivirus. Ili puno novca za svoje vrijeme, koje bih u početku potrošio na serveru, ručno grabljajući ove štale. Vlasnik je bio zadovoljan ovim aranžmanom.

Moje iskustvo sa Pleskom
U međuvremenu su našli novog programera. Dogovorili smo se s njim oko raspodjele odgovornosti, napravili poddomen za probnu verziju i rad je počeo. Rezao je novu verziju sajta na Laravelu, a ja sam gledao fail2ban%).

Moje iskustvo sa Pleskom
Zanimljivo, tok znatiželjnika ne prestaje i na listi zabranjenih uvijek se nađe stotinjak adresa. Efekt je zanimljiv: posebno, obično, ako se prijavim u shell, na pozdravu vidim oko 20000-30000 neuspješnih pokušaja prijave preko SSH-a. Uz uključen fail2ban, oko 70. Uloženih napora: 0. Nažalost, nije bilo bez kapi masti. Podrazumevano, WAF (modsecurity) je bio napola omogućen: u načinu otkrivanja. To jest, upisao je sumnjivu aktivnost u dnevnik, ali zapravo ništa nije poduzeo. I fail2ban je neselektivno procitao sve logove, po omogucenim jajovima, i pobio sve sto se kretalo. Tako smo zabranili pola urednika :D. Morao sam onemogućiti ovaj zatvor i staviti na bijelu listu potrebnih IP adresa radi pouzdanosti. Uloženi su napori: gurnite miša dvaput i naučite urednike da vam kažu vašu IP adresu.

Moje iskustvo sa Pleskom
Ono što se programeru odmah svidjelo je mogućnost postavljanja baza podataka direktno u panel i brz pristup phpMyAdmin-u

Moje iskustvo sa Pleskom
Ono što mi se dopalo su zapisnici i rezervne kopije. Dnevnici se pišu i rotiraju iz kutije; Sigurnosne kopije se vrlo lako postavljaju. U najsporijim trenucima, pravi se potpuna rezervna kopija, oko 10 giga, a zatim svaki dan inkrementalna, po 200 megabajta, tokom jedne sedmice. Oporavak je detaljan, sve do određene datoteke ili baze podataka. Ako trebate vratiti iz inkrementalnog, onda se ne morate prvo mučiti s potpunim i vraćanjem cijelog lanca, Plesk sve radi sam. Sigurnosne kopije možete uploadati bilo gdje: na FTP, dropbox, s3 bucket, google drive, itd.

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

Počeli su prvi problemi. Nova stranica je očekivano bila teža od stare, ali prava graba je bila to što su za privlačenje prometa koristili, između ostalog, Yandex.Zen, koji je doveo mnoštvo posjetitelja. Stranica je pala sa 150 istovremenih veza (ne govorim o RPS-u, jer ga nisu mjerili). Počeli smo gurati dugmad i okretati dugmad u području postavki php_fpm:
 
Moje iskustvo sa Pleskom
Hej, on već ima 500 veza. Kako su kreditne kartice dodane u sredstva promocije, talasi prometa su postajali sve veći. Sljedeća prekretnica je 1000 istovremenih veza. Ovdje smo morali doraditi šifru i pogledati u dušu mišića. Prskanje nije pomoglo, ali nismo to baš očekivali. Omogućili smo spori dnevnik upita, dodali indekse u bazu podataka, uklonili nepotrebne upite iz koda i još jednom očistili mysql konfiguraciju prema savjetu mysqltuner-a.

Novi izazov - 2000 veza. Upravo je izašla verzija Pleska 17.8 u koju je, između ostalog, dodano nginx keširanje. Ažurirano (iznenađujuće lako). Pokusajmo. Works! A onda su zakoračili na meku stranu, Yandex.Zen feed je prestao da radi. Stranica radi, feed ne radi. Feed ne radi, nema saobraćaja. Atmosfera se zahuktava. Pod pritiskom okolnosti i nedostatka mašte, odmah sam otišao na strace i nginx i pronašao ono što sam tražio. Ispostavilo se da je u nekom trenutku glupi nginx keširao zalutalu 500. grešku kao odgovor na Yandex get feed.xml. Popravljen je dodavanjem izuzetaka u postavke keša:

Moje iskustvo sa Pleskom
Jasno je da vlasniku treba VIŠE, talasi se polako povećavaju. Za sada se snalazimo, ali smo počeli da eksperimentišemo sa memcached-om unapred, na sreću Laravel ga podržava skoro iz kutije. Nekako nisam želio ručno instalirati memcached samo da bih se "igrao", pa sam instalirao docker image. Pravo sa panela.

Moje iskustvo sa Pleskom
Pa dobro, lažem, morao sam ući u shell i instalirati modul preko pecl-a. Odmah uputstva. O povećanju protoka još se nema šta reći, nije bilo dovoljno velikih priliva. Motor stranice je spojen na localhost:11211, prikazana je statistika, memorija se troši. Ako vam se sviđa, videćemo šta dalje. Ili ćemo to ostaviti tako, ili ćemo "pravu" staviti pravo u osovinu. Ili hajde da probamo redis na isti način

Zatim je bilo potrebno priložiti mailing listu. Nema releja, samo smtp autentifikacija. Postavio sam poštansku adresu i koristim njene detalje za slanje biltena putem PHP-a.

Moje iskustvo sa Pleskom
Nedavno je objavljen Plesk Obsidian (18.0), ažurirali smo ga na osnovu prethodnog iskustva bez straha. Sve je proteklo veoma glatko, nema se ni o čemu pričati. Prijatna stvar je što se kvalitet interfejsa uveliko poboljšao, postao je moderniji i na nekim mestima praktičniji. Super stvar Napredno praćenje na Grafani.

Moje iskustvo sa Pleskom
Još se nisam detaljnije bavio time, ali možete, na primjer, postaviti upozorenja za bilo koji parametar u svojoj e-pošti. Za vlasnika, lol.

Dok govorim o interfejsu, on je brz i dobro radi na telefonu. U ranim fazama, dok smo pokušavali da pronađemo optimalne postavke za PHP i druge stvari, ovo je mnogo pomoglo. A pogotovo kada programer u naletu radnog entuzijazma radi nešto u 23 sata, a ja u naletu radnog entuzijazma pijem votku u kupatilu i HITNO trebam nešto da promenim.

Moje iskustvo sa Pleskom
Oh, usput. Na slici se vidi da se pojavio PHP Composer. Još se nismo igrali s njim, ali, recimo, za Laravel, može uštedjeti nekoliko prijava na shell i neko vrijeme na instaliranju zavisnosti. Isti sistem postoji za Node.JS i Ruby.

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

Moje iskustvo sa Pleskom
Sam Plesk kao softver je trenutno prilično prijatan 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 bio očigledan nedostatak na proizvodu. Bilo je problema, naravno, ali su ili zbog nesavršene konfiguracije ili negdje na raskrsnici, tako da se nema šta zamjeriti. Utisci rada sa Pleskom su općenito ugodni. Ono što nema, a to moramo razumjeti, je bilo kakvo (bilo kakvo) grupisanje. Ni LB ni HA. Možete pokušati, ali uloženi trud će biti toliki da je bolje od početka učiniti nešto drugačije.

Mislim da to možemo sumirati. Za slučaj kada nema administratora, ili ga nema dovoljno, kada cijena hostinga i sajtova koji se vrte na njemu prelazi recimo 100 USD, kada ne govorimo o bestijalnom dijeljenju od 1500 sajtova na serveru, kada je donosilac odluka suočen sa Ako imate izbor da angažujete admina na pola radnog vremena, ili kupite softver i imate administratora za pola dolara, ili ga uopšte nemate - definitivno ima smisla. Sa stanovišta udaljenog administratora - ista stvar. 10$ mjesečno, štedi vrijeme i daje fleksibilnost u radu na jako dugo vrijemeоveću količinu. Ako, na primjer, budem snažno zamoljen da uzmem sličan projekat pod svoje okrilje, insistirat ću da ga prenesem u Plesk.

Moje iskustvo sa Pleskom

izvor: www.habr.com

Dodajte komentar