Moje zkušenost s Pleskem

Rád bych se podělil o pár dojmů o nezbytnosti či nepotřebnosti takové věci, jako je ovládací panel pro komerční jednoserverový webový projekt s administrátorem na velmi částečný úvazek. Příběh začal před několika lety, když mě přátelé přátel požádali o pomoc při nákupu firmy - zpravodajského webu - z technického hlediska. Bylo potřeba se trochu ponořit do toho, co na čem funguje, ujistit se, že všechny potřebné detaily byly přeneseny ve správné formě a objemu, a strategicky vymyslet, co by se dalo zlepšit.

Moje zkušenost s Pleskem
Dohoda byla dokončena, houslista už nebyl potřeba. Konec. Spíš ne.

Stránky běžely na dvoujádrovém 4GB VM na Linode, na nějakém mechovém Debian5 s ​​uptime 400 dní a takovým seznamem neaktualizovaných balíčků. Webová část na vlastním CMS, nginx, php5.3 FPM, mysql laděná Percona. V principu to fungovalo.

Souběžně s rozhovory se mnou nový majitel hledal programátora, který by projekt přivedl k očekávání. Nalezeno. Programátor vyhodnotil provoz a objemy a rozhodl, že ví, jak optimalizovat a řídit náklady. Převedl celý web na sdílený hosting za 700 rublů spravovaný jeho obvyklým IS****erem. O několik dní později přišel další telefonát od majitele: "Všechno je pomalé a zdá se, že jsme zlomeni." Snažil jsem se situaci napravit pomocí panelu, ale po nějaké době bezvýsledných pokusů změnit verzi PHP nebo handler z fcgi na fpm jsem to vzdal a šel do shellu. Tam jsem našel povolené ladění, které svítilo na celý internet s heslem z muscle, 777 na některé složky, které do té doby praskaly malware a podobné nesmysly. Majitel si uvědomil a rozhodl se, že bylo špatné šetřit na hostingu, programátorovi a adminovi, který by mohl dohlížet na to, jak se věci mají.

Jdeme do RuVDS. O něco blíž než britský Linode, a pokud najednou budete chtít ukládat osobní data a to všechno, nebudete se muset nikam jinam stěhovat. Protože bylo plánováno rozšíření projektu, vzali jsme VM pro růst: 4 jádra, 8 gigabajtů paměti, 80 GB disku. Není to tak, že bych nevěděl, jak ručně nakonfigurovat konfigurace nginx, jen jsem neměl nadšení pracovat na tomto projektu tak důvěrně (viz výše o částečném úvazku). Proto jsem nainstaloval Plesk (zde vynechám podrobnosti o instalaci, protože v podstatě žádné nejsou: spustil jsem instalátor, nastavil heslo pro administrátora, zadal klíč - to je vše), v té době to bylo 17.0. Základní nastavení funguje snesitelně hned po vybalení, je tu fail2ban a poslední dostupné verze PHP a nginx. 

Asi stojí za to se zastavit a vysvětlit proč. Vzhledem k tomu, že takové věci dělám jen zřídka a na každý případ nemám žádné speciální nástroje nebo sadu přípravků, bylo jasné, že je potřeba nějaká automatizace základních věcí, aby za prvé rychle, za druhé bezpečně a za třetí , všechny osvědčené postupy, které již někdo implementoval.

Tak jsem to nainstaloval. Ušetřil jsem spoustu času, restart webu na novém serveru byl téměř okamžitý. Zbývalo jen upravit konfiguraci svalu, dát mu polovinu paměti a zvýšit počet vyrovnávacích pamětí a dát nginx polovinu jader (Plesk se nedotýká globálních konfigurací) a na pár dní jít do shellu a podívat se ve statistikách mysqltuner. Jo a koupil jsem si placený ImunifikAV z katalogu rozšíření, abych se zbavil zaplaveného malwaru. Bylo nalezeno asi 11000 XNUMX infikovaných souborů. Ohavnost spočívá v tom, že do statiky byly nasypány zamlžené kusy kódu a ruční čištění by bylo úplně nudné. Nejprve jsem zkoušel ClamAV, ale jak se ukázalo, takové věci nebere, ale ImunifyAV ano. Navíc dezinfikované soubory zůstávají v provozuschopném stavu, kus s malwarem je jednoduše smazán.

Aritmetika je jednoduchá: 50 dolarů měsíčně za VMka, 10 dolarů za Plesk (ve skutečnosti méně, protože jste si ho koupili na rok najednou s dvouměsíční slevou) a 3 dolary za antivirus. Nebo hodně peněz za můj čas, který bych nejdřív utratil na serveru, když bych tyhle stáje hrabal ručně. Majitel byl s tímto uspořádáním docela spokojený.

Moje zkušenost s Pleskem
Mezitím našli nového programátora. Dohodli jsme se s ním na rozdělení odpovědnosti, vytvořili subdoménu pro testovací verzi a začalo se pracovat. Na Laravelu stříhal novou verzi webu a já se díval na fail2ban%).

Moje zkušenost s Pleskem
Zajímavé je, že proud zvědavců neustává a na seznamu zakázaných je vždy kolem stovky adres. Efekt je zajímavý: zejména obvykle, pokud se přihlásím do shellu, vidím u pozdravu asi 20000 30000-2 70 neúspěšných pokusů o přihlášení přes SSH. S povoleným fail0ban asi 2. Investované úsilí: XNUMX. Bohužel se to neobešlo bez kapky masti. Ve výchozím nastavení bylo WAF (modsecurity) napůl povoleno: v režimu zjišťování. To znamená, že do protokolu zapsal podezřelou aktivitu, ale ve skutečnosti neprovedl žádnou akci. A failXNUMXban bez rozdílu četl všechny protokoly podle povolených vězení a zabíjel vše, co se hýbalo. Tím pádem jsme zakázali půlce redaktorů :D. Musel jsem deaktivovat toto vězení a přidat na seznam povolených IP adres potřebné pro spolehlivost. Je vynaloženo úsilí: dvakrát šťouchněte myší a naučte editory, aby vám sdělili vaši IP adresu.

Moje zkušenost s Pleskem
Co si programátor hned oblíbil, byla možnost nahrání databází přímo do panelu a rychlý přístup do phpMyAdmin

Moje zkušenost s Pleskem
Co se mi líbilo, byly logy a zálohy. Protokoly se zapisují a otáčejí z krabice; Zálohování je velmi snadné. V nejpomalejším čase se vytvoří úplná záloha, asi 10 gigabajtů, a pak každý den přírůstková záloha, každá po 200 megabajtech, po dobu jednoho týdne. Obnova je granulární, až po konkrétní soubor nebo databázi. Pokud potřebujete obnovit z přírůstkového, pak se nemusíte nejprve obtěžovat s úplným a obnovením celého řetězce, Plesk dělá vše sám. Zálohy můžete nahrávat kamkoli: na FTP, dropbox, s3 bucket, google drive atd.

Moje zkušenost s Pleskem
Den F: programátor konečně dokončil nový motor, nahráli jsme ho do výroby, naimportovali stará data a zasedli k výběru barvy našeho budoucího Maserati. Pořád sedíme a vybíráme.

Začaly první problémy. Nový web byl očekávaně těžší než ten starý, ale skutečným přínosem bylo, že k přilákání návštěvnosti používali mimo jiné Yandex.Zen, který přivedl spoustu návštěvníků. Stránka se zhroutila se 150 současnými připojeními (nemluvím o RPS, protože to neměřili). Začali jsme šťouchat tlačítka a otáčet knoflíky v oblasti nastavení php_fpm:
 
Moje zkušenost s Pleskem
Hej, už má 500 spojení. S tím, jak se k prostředkům propagace přidaly kreditní karty, se vlny návštěvnosti zvětšily. Dalším milníkem je 1000 současných spojení. Zde jsme museli dodělat kód a podívat se do duše svalu. Cákání nepomohlo, ale to jsme opravdu nečekali. Povolili jsme protokol pomalých dotazů, přidali indexy do databáze, odstranili zbytečné dotazy z kódu a ještě jednou jsme vyčistili konfiguraci mysql podle rad mysqltunera.

Nová výzva – 2000 spojení. Právě se podařilo vydat verzi Plesk 17.8, ve které bylo mimo jiné přidáno nginx caching. Aktualizováno (překvapivě snadné). Zkusme to. Funguje! A pak šlápli na měkkou stranu, feed Yandex.Zen přestal fungovat. Stránky fungují, feed nefunguje. Nefunguje feed, není provoz. Atmosféra se zahřívá. Pod tlakem okolností a z nedostatku představivosti jsem okamžitě šel do strace a nginx a našel jsem, co jsem hledal. Ukazuje se, že v určitém okamžiku hloupý nginx uložil do mezipaměti zatoulanou 500. chybu jako odpověď na Yandex get feed.xml. Opraveno přidáním výjimek do nastavení mezipaměti:

Moje zkušenost s Pleskem
Je jasné, že majitel potřebuje VÍC, vlny pomalu přibývají. Zatím se s tím vyrovnáváme, ale s memcached jsme začali experimentovat s předstihem, naštěstí to Laravel podporuje téměř po vybalení. Nějak se mi nechtělo instalovat memcached ručně, jen abych si „pohrál“, tak jsem nainstaloval docker image. Přímo z panelu.

Moje zkušenost s Pleskem
Dobře, lžu, musel jsem jít do shellu a nainstalovat modul přes pecl. Právě na instrukce. Ke zvýšení propustnosti zatím není co říci, nebyly dostatečně velké přílivy. Motor webu je připojen k localhost:11211, jsou zobrazeny statistiky, spotřebovává se paměť. Pokud se vám to líbí, uvidíme, co dál. Buď to tak necháme, nebo to „skutečné“ dáme přímo do Osy. Nebo zkusme stejným způsobem redis

Poté bylo nutné připojit mailing list. Žádná relé, pouze autentizace smtp. Nastavil jsem si poštovní adresu a její údaje používám k rozesílání newsletteru přes PHP.

Moje zkušenost s Pleskem
Nedávno byl vydán Plesk Obsidian (18.0), který jsme bez obav aktualizovali na základě minulých zkušeností. Vše proběhlo velmi hladce, není ani o čem mluvit. Příjemné je, že se kvalita rozhraní výrazně zlepšila, zmodernizovala a na některých místech se stala pohodlnější. Skvělá věc Pokročilé monitorování na Grafaně.

Moje zkušenost s Pleskem
Zatím jsem se tím podrobně nezabýval, ale můžete si například nastavit upozornění na libovolný parametr ve svém emailu. Pro majitele, lol.

Když už mluvím o rozhraní, je citlivé a na telefonu funguje opravdu dobře. V raných fázích, kdy jsme se snažili najít optimální nastavení pro PHP a další věci, to hodně pomohlo. A zvlášť, když programátor v návalu pracovního nadšení něco udělá ve 23:XNUMX a já v návalu pracovního nadšení piju vodku v lazebně a URGENTNĚ potřebuji něco přepnout.

Moje zkušenost s Pleskem
Mimochodem. Obrázek ukazuje, že se objevil PHP Composer. Ještě jsme si s tím nehráli, ale řekněme pro Laravel to může ušetřit pár přihlášení do shellu a nějaký čas na instalaci závislostí. Stejný systém existuje pro Node.JS a Ruby.

S SSL je vše jednoduché. Pokud se doména vyřeší podle očekávání, Let’s Encrypt se provede jedním kliknutím a poté se sama aktualizuje, a to jak pro samotnou doménu, tak pro subdomény a dokonce i poštovní služby.

Moje zkušenost s Pleskem
Samotný Plesk jako software je v současnosti celkem příjemný a stabilní. Aktualizuje se sama a Axis tiše, spotřebovává málo zdrojů a funguje hladce. Už si ani nepamatuji, že bych někde na něco šlápl, což by byla zjevná vada výrobku. Problémy samozřejmě byly, ale byly buď kvůli nedokonalé konfiguraci, nebo někde na křižovatce, takže si není na co stěžovat. Dojmy ze spolupráce s Pleskem jsou vesměs příjemné. To, co nemá, a to musíme pochopit, je jakékoli (jakékoli) shlukování. Ani LB, ani HA. Můžete to zkusit, ale vynaložené úsilí bude tak velké, že je lepší dělat ze začátku něco jinak.

Myslím, že to můžeme shrnout. Pro případ, kdy není administrátor, nebo je ho málo, kdy cena hostingu a na něm točících se stránek přesáhne řekněme 100 USD, když se nebavíme o bestiálním sdílení 1500 stránky na serveru, když je ten, kdo rozhoduje, tváří v tvář Pokud máte na výběr, zda najmout admina na částečný úvazek, nebo si koupit software a mít admina za půl babky, nebo ho nemít vůbec – rozhodně to dává smysl. Z pohledu vzdáleného správce - to samé. 10 $ měsíčně a šetří čas a poskytuje flexibilitu v práci po velmi dlouhou dobuоvětší množství. Pokud budu například důrazně požádán, abych podobný projekt vzal pod svá křídla, budu trvat na jeho převedení na Plesk.

Moje zkušenost s Pleskem

Zdroj: www.habr.com

Přidat komentář