Moja skúsenosť s Plesk

Chcem sa podeliť o niektoré dojmy o potrebe alebo nepotrebnosti ovládacieho panela pre komerčný jedno-serverový webový projekt s veľmi part-time administrátorom. Príbeh začal pred pár rokmi, keď ma známi známych požiadali, aby som technicky podporil kúpu podnikania — news webu. Bolo potrebné trochu preniknúť do toho, na čom všetko beží, zabezpečiť, aby všetky potrebné údaje boli odovzdané v náležitej forme a objeme, a strategicky zhodnotiť, čo sa dá zlepšiť.

Moja skúsenosť s Plesk
Obchod sa uskutočnil, huslista už nebol potrebný. Konec. V skutočnosti nie.

Web sa prevádzkoval na dvojjadrovom 4-gigovom VM na Linode, na nejakom zastaranom Debian5 so 400-dňovým uptime a s takýmto zoznamom neaktualizovaných balíkov. Webová časť na vlastnej CMS, nginx, php5.3 FPM, mysql ladená Percona. V podstate to fungovalo.

Paralelne s rozhovormi so mnou nový majiteľ hľadal programátora, aby projekt prispôsobil očakávaniam. Našiel. Programátor posúdil návštevnosť a objemy a rozhodol sa, že vie optimalizovať a spravovať náklady. Migráciu celého webu na 700-rubľový zdieľaný hosting pod vedením jeho obvyklého IS****era vykonal. O niekoľko dní následne zazvonil nový majiteľ: „všetko spomaľuje a zdá sa, že nás napadli“. Snažil som sa situáciu napraviť cez panel, ale po nejakej dobe neúspešných pokusov zmeniť verziu PHP alebo handler z fcgi na fpm, som sa vzdal a dostal sa do shellu. Tam som našiel zapnutý debug, ktorý osvetľoval celý internet heslom k mysql, 777 na niektoré priečinky, ktoré v tom čase praskali od nahranej malvéry a podobné nezmysly. Majiteľ si to uvedomil a rozhodol sa, že šetriť na hostingu, programátorovi a administrátorovi, ktorý by sa aspoň jedným okom pozeral, ako to ide — nie je správne.

Ideme na RuVDS. O niečo bližšie ako britská Linode, a ak by sa náhodou chcelo uchovávať osobné údaje a to všetko, už nebude potrebné nikam presúvať. Keďže sa plánovalo rozšírenie projektu, kúpili sme VM „na nárast“: 4 jadrá, 8 GB pamäte, 80 GB disku. Nie že by som nevedel robiť s konfiguráciami nginx rukami, proste som nemal chuť sa tomuto projektu venovať tak intímne (pozri hore o part time). Preto som nainštaloval Plesk (tu nie je potrebné spomínať podrobnosti inštalácie, lebo ak ich je, tak ich je len málo: spustil som inštalátor, nastavil heslo pre administrátora, zadal kľúč – hotovo), v tom čase to bola verzia 17.0. Základné nastavenia fungujú celkom slušne z krabice, je tam fail2ban a posledné dostupné verzie PHP, nginx. 

Asi by som sa mal zastaviť a vysvetliť, prečo to. Keďže sa týmto veciam venujem zriedka a nemám žiadne špeciálne nástroje a sady šablón na každý prípad, bolo jasné, že potrebujem nejakú automatizáciu základných vecí, aby som to po prvé robil rýchlo, po druhé bezpečne, a po tretie, aby už niekto implementoval všetky najlepšie praktiky.

Takže som to nainštaloval. Ušetril som dosť času, reštart webu na novom serveri bol prakticky okamžitý. Ostávalo upraviť konfiguráciu MySQL, poskytnúť mu polovicu pamäte a zvýšiť počet buffer pools, a dať nginx polovicu jadier (Plesk nemení globálne konfigurácie), a počas pár dní sa občas prihlásiť do shellu a pozrieť štatistiky mysqltuner. Áno, a kúpil som platený ImunifyAV z katalógu rozšírení, aby som sa zbavil napadnutých súborov. Našlo sa asi 11000 infikovaných súborov. Ošklivosť tkvie v tom, že do statiky sa dostávali obfuskované kusy kódu, a čistenie tohto ručne by bolo úplne deprimujúce. Spočiatku som skúšal ClamAV, ale zistilo sa, že takéto veci nezachytáva, zatiaľ čo ImunifyAV dokázal. A ošetrené súbory zostávajú v pracovnom stave, len sa odstraňuje kus s malvérom.

Aritmetika je jednoduchá: 50$ mesačne za VM, 10$ za Plesk (v skutočnosti menej, pretože sme kúpili rovno na rok so zľavou na dva mesiace) a 3$ za antivírus. Alebo veľa peňazí za môj čas, ktorý by som strávil na serveri na začiatku, aby som ručne upratoval túto pliagu. Majiteľ bol s takým rozložením úplne spokojný.

Moja skúsenosť s Plesk
Medzitým sme našli nového programátora. Dohodli sme sa s ním na rozdelení zodpovednosti, vytvorili subdoménu pre testovaciu verziu, a práca sa rozbehla. Pracoval na novej verzii stránky na Laraveli, zatiaľ čo som sledoval fail2ban%).

Moja skúsenosť s Plesk
Zaujímavé je, že prúd zvedavých nikdy neutícha a v zozname zakázaných adres je vždy okolo stovky. Zaujímavý efekt: konkrétne, zvyčajne, keď sa dostanem do shellu, na úvodnom obrazovke vidím okolo 20 000–30 000 neúspešných pokusov o prihlásenie cez SSH. S aktívnym fail2ban okolo 70. Vložené úsilie: 0. Bez kvapky smoly sa žiaľ nezaobišlo. Predvolene bol „polovične zapnutý“ WAF (modsecurity): v režime detekcie. Teda zaznamenával podozrivú aktivitu do logu, ale v skutočnosti žiadne kroky nepodnikal. A fail2ban bez rozmyslu čítal všetky logy, podľa povolených jails a blokoval všetko, čo sa hýbalo. Takto sme zakázali polovicu redakcie :D. Museli sme vypnúť tento jail a potrebné IP adresy pre istotu pridať do bieleho zoznamu. Úsilie vložené: dvakrát kliknúť myšou a naučiť redaktorov povedať svoju IP adresu.

Moja skúsenosť s Plesk
Čo sa programátorovi hneď zapáčilo — možnosť nahrávať databázy priamo v paneli a rýchly prístup k phpMyAdmin.

Moja skúsenosť s Plesk
Čo sa mi páčilo — logy a zálohy. Logy sa píšu a rotujú automaticky; zálohy sa nastavujú veľmi jednoducho. V najpomalšom čase sa robí kompletná záloha, niekde okolo 10 gigabajtov, a potom každý deň po inkremetálnej, po 200 megabajtov, počas týždňa. Obnova je granulárna, až do konkrétneho súboru alebo databázy. Ak je potrebné obnoviť z inkremetálnej zálohy, nie je potrebné sa trápiť najprv s kompletnou a obnovou celej sekvencie, Plesk to robí všetko sám. Zálohy je možné nahrávať kamkoľvek: na FTP, na Dropbox, S3 bucket, Google Drive a podobne.

Moja skúsenosť s Plesk
Deň D: programátor konečne dokončil nový engine, nahrali sme ho do produkcie, importovali staré dáta a sadli sme si vyberať farbu našich budúcich Maserati. Doteraz si vyberáme.

Začali prvé problémy. Nová stránka bola očakávane náročnejšia ako stará, ale reálny problém bol v tom, že na prilákanie návštevnosti sme okrem iného využívali Yandex.Zen, ktorý tlačil návštevníkov v balíkoch. Stránka sa-zosypala pri 150 simultánnych pripojeniach (nestanovili sme RPS, pretože sme to nemerali). Začali sme tlačiť tlačidlá a otáčať gombíky v oblasti nastavení php_fpm:
 
Moja skúsenosť s Plesk
Wow, it already handles 500 connections. As we applied the credit card to increase the marketing funds, the traffic waves grew larger. The next milestone is 1000 simultaneous connections. Here, we had to refine the code and dig deep into the muscle. Plesk didn’t help in this situation, but we didn’t really expect that. We enabled the slow queries log, added indexes to the database, removed unnecessary queries from the code, and refined the MySQL config once again according to mysqltuner's advice.

The new challenge is 2000 connections. Just in time for the release of Plesk 17.8, which included, among other features, nginx caching. We updated (surprisingly easily). Let's try it out. It works! And then everything went smooth, the Yandex Zen feed stopped working. The site is up, but the feed is down. No feed means no traffic. The atmosphere is tense. Under pressure and lacking creativity, I immediately started stracing nginx and found what I was looking for. At some point, foolish nginx cached a 500 error as the response to Yandex's get feed.xml request. We fixed it by adding exceptions to the cache settings.

Moja skúsenosť s Plesk
Of course, the owner wants MORE; the waves are gradually increasing. We're managing so far, but we've begun experimenting with memcached in advance, as Laravel supports it almost out of the box. I didn’t want to install memcached manually just for testing, so we deployed a Docker image straight from the panel.

Moja skúsenosť s Plesk
Okay, I admit, I had to go into the shell and install the module via pecl. Right according to the instructions. I can't report on any increase in bandwidth yet, as there haven't been any significant influxes. The site engine connected to localhost:11211, stats are showing, memory is consumed. If we like it, we’ll see what to do next; either we’ll leave it as is or install the 'real' one directly on the OS. Alternatively, we might try Redis in the same way.

Then we needed to set up a mailing system. No relays, just SMTP authentication. I created an email address and, using its credentials via PHP, we send out newsletters.

Moja skúsenosť s Plesk
Recently, Plesk Obsidian (18.0) was released, and we updated without fear based on past experience. Everything went very smoothly; there’s nothing to really talk about. On the bright side, the interface quality has greatly improved, making it more modern and convenient in some areas. The Advanced Monitoring feature on Grafana is a cool addition.

Moja skúsenosť s Plesk
I haven't looked into it in detail yet, but you can set alerts for any parameter to be sent to email, which is amusing for the owner, lol.

Keď hovorím o rozhraní, je responzívne a na telefóne funguje naozaj dobre. V raných fázach, keď sme sa snažili nájsť optimálne nastavenia PHP a iné, veľmi pomohlo. A najmä keď programátor v záchvate pracovného nadšenia robí niečo o 23. hodine a ja v záchvate pracovného nadšenia pijem vodku v saune a NALIEHAVO potrebujem niečo prepnúť.

Moja skúsenosť s Plesk
O, mimochodom. Na obrázku je viditeľný PHP Composer. Ešte sme si s ním nehrali, ale povedzme, pre Laravel môže ušetriť niekoľko prihlásení v shelli a trochu času na inštaláciu závislostí. Taký istý systém existuje aj pre Node.JS a Ruby.

So SSL je to jednoduché. Ak sa doména resolvuje tam, kde má, Let’s Encrypt sa vytvára jedným kliknutím a ďalej sa aktualizuje automaticky, a to ako na samotnú doménu, tak aj na subdomény, a dokonca aj na poštové služby.

Moja skúsenosť s Plesk
Sám Plesk je v súčasnosti celkom príjemný a stabilný. Sám sa aktualizuje a OS ticho, spotrebuje málo prostriedkov a pracuje presne. Ani si nepamätám, že by som sa niekde dopustil jasného defektu produktu. Problémy samozrejme boli, ale tie buď vyplývali z nedokonalosti konfigurácie, alebo niekde na rozhraní, takže sa naozaj niet čoho chytiť. Zážitky z práce s Pleskom sú celkovo pozitívne. Čo mu chýba, a to je potrebné pochopiť, je akákoľvek (akákoľvek) klasterizácia. Ani LB, ani HA. Môžete sa snažiť, ale vynaložených úsilia bude toľko, že je lepšie od začiatku robiť niečo iné.

Myslím, že môžeme zhrnúť. Pre prípad, keď administrátor nie je, alebo je ho málo, keď cena hostingu a stránok (a stránok) na ňom presahuje, povedzme, 100 EUR, keď nejde o zbytočný shared hosting s 1500 stránkami na serveri, keď pred rozhodujúcim stojí voľba zamestnať administrátora na polovičný úväzok, alebo kúpiť softvér a zamestnať administrátora za „pol šesťky“, alebo ho vôbec nezamestnať — určite má zmysel. Z hľadiska vzdialeného administrátora — to isté. 10 dolárov mesačne, a šetrí čas a pridáva flexibilitu v práci na veľmi väčšej sume. Ak by ma napríklad veľmi požiadali, aby som vzal podobný projekt pod svoje krídla, budem trvať na prenose na Plesk.oVyšiel Wine 5.0

Moja skúsenosť s Plesk

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster