La mia esperienza con Plesk

Vorrei condividere alcune impressioni sulla necessità o l'inutilità di un pannello di controllo per un progetto web commerciale a server singolo con un amministratore part-time. La storia inizia un paio di anni fa, quando amici di amici mi chiesero di assistere nell'acquisto di un'attività - un sito di notizie - dal punto di vista tecnico. Era necessario approfondire un po' cosa stava lavorando su cosa, assicurarsi che tutti i dettagli necessari fossero trasferiti nella forma e nel volume corretti e capire strategicamente cosa poteva essere migliorato.

La mia esperienza con Plesk
L'affare è stato concluso, il violinista non era più necessario. FINE. Non proprio.

Il sito funzionava su una VM dual-core da 4 GB su Linode, su alcune Debian5 muschiose con un tempo di attività di 400 giorni e un tale elenco di pacchetti non aggiornati. Web part su un CMS autoprodotto, nginx, php5.3 FPM, Percona ottimizzato per mysql. In linea di principio, ha funzionato.

Parallelamente alle conversazioni con me, il nuovo proprietario stava cercando un programmatore per portare il progetto alle aspettative. Trovato. Il programmatore ha valutato il traffico e i volumi e ha deciso che sapeva come ottimizzare e gestire i costi. Ha migrato l'intero sito su un hosting condiviso da 700 rubli gestito dal suo solito IS****er. Pochi giorni dopo arriva un’altra telefonata del titolare: “va tutto a rilento e sembra che siamo a pezzi”. Ho provato a correggere la situazione tramite il pannello, ma dopo qualche tempo di tentativi infruttuosi di cambiare la versione PHP o il gestore da fcgi a fpm, ho rinunciato e sono entrato nella shell. Lì ho trovato un debug abilitato che brillava su tutta Internet con la password del muscolo, 777 su alcune cartelle che a quel tempo si stavano rompendo con malware e sciocchezze simili. Il proprietario se ne è accorto e ha deciso che era sbagliato risparmiare sull'hosting, su un programmatore e su un amministratore che potesse tenere d'occhio come andavano le cose.

Andremo a RuVDS. Un po' più vicino del Linode britannico, e se all'improvviso vuoi archiviare dati personali e tutto questo, non dovrai spostarti da nessun'altra parte. Poiché era prevista l'espansione del progetto, abbiamo preso una VM per la crescita: 4 core, 8 gigabyte di memoria, 80 GB di disco. Non è che non sappia come configurare manualmente le configurazioni nginx, semplicemente non avevo l'entusiasmo di lavorare su questo progetto in modo così intimo (vedi sopra sul part-time). Ecco perché ho installato Plesk (qui ometterò i dettagli dell'installazione, perché in generale non ce ne sono: ho avviato il programma di installazione, ho impostato la password per l'amministratore, ho inserito la chiave - tutto qui), a quel tempo era 17.0. Le impostazioni di base funzionano abbastanza bene, c'è fail2ban e le ultime versioni disponibili di PHP e nginx. 

Probabilmente vale la pena fermarsi e spiegare il perché. Dal momento che faccio raramente queste cose e non ho strumenti speciali o una serie di preparativi per ciascun caso, era chiaro che era necessaria una sorta di automazione delle cose di base, in modo che in primo luogo, rapidamente, in secondo luogo, in modo sicuro e in terzo luogo , tutte le migliori pratiche che qualcuno le ha già implementate.

Quindi l'ho installato. Ho risparmiato molto tempo, riavviare il sito su un nuovo server è stato quasi istantaneo. Tutto ciò che restava era modificare la configurazione muscolare, dandogli metà della memoria e aumentando il numero di pool di buffer, e dare a nginx metà dei core (Plesk non tocca le configurazioni globali), e per un paio di giorni andare nella shell per guardare nelle statistiche di mysqltuner. Sì, e ho acquistato ImunifyAV a pagamento dal catalogo delle estensioni per sbarazzarmi del malware inondato. Sono stati trovati circa 11000 file infetti. L'abominio è che pezzi di codice offuscati sono stati riversati nella statica e pulirla a mano sarebbe stato completamente noioso. Per prima cosa ho provato ClamAV, ma, come si è scoperto, non accetta queste cose, ma ImunifyAV sì. Inoltre, i file disinfettati rimangono funzionanti; la parte contenente il malware viene semplicemente eliminata.

L'aritmetica è semplice: $ 50 al mese per VMka, $ 10 per Plesk (in realtà meno, perché lo hai acquistato per un anno con uno sconto di due mesi) e $ 3 per l'antivirus. O un sacco di soldi per il mio tempo, che all'inizio avrei speso sul server, rastrellando manualmente queste stalle. Il proprietario era molto soddisfatto di questa sistemazione.

La mia esperienza con Plesk
Nel frattempo hanno trovato un nuovo programmatore. Ci siamo accordati con lui sulla distribuzione delle responsabilità, abbiamo creato un sottodominio per la versione di prova e il lavoro è iniziato. Stava realizzando una nuova versione del sito su Laravel e io stavo guardando fail2ban%).

La mia esperienza con Plesk
È interessante notare che il flusso di curiosi non si ferma e ci sono sempre un centinaio di indirizzi nell'elenco di quelli vietati. L'effetto è interessante: in particolare, solitamente, se accedo ad una shell, al saluto vedo circa 20000-30000 tentativi falliti di login via SSH. Con fail2ban abilitato, circa 70. Sforzi investiti: 0. Purtroppo non è stato senza una goccia di unguento. Per impostazione predefinita, WAF (modsecurity) era abilitato per metà: in modalità di rilevamento. Cioè, ha scritto attività sospette nel registro, ma in realtà non ha intrapreso alcuna azione. E fail2ban ha letto indiscriminatamente tutti i log, secondo le jail abilitate, e ha ucciso tutto ciò che si muoveva. Pertanto, abbiamo bandito metà degli editori :D. Ho dovuto disabilitare questa jail e inserire nella whitelist gli indirizzi IP necessari per affidabilità. Gli sforzi vengono investiti: tocca due volte il mouse e insegna agli editori a dirti il ​​tuo indirizzo IP.

La mia esperienza con Plesk
Ciò che è subito piaciuto al programmatore è stata la possibilità di caricare i database direttamente nel pannello e l'accesso rapido a phpMyAdmin

La mia esperienza con Plesk
Ciò che mi è piaciuto sono stati i registri e i backup. I log vengono scritti e ruotati immediatamente; I backup sono molto facili da configurare. Nei tempi più lenti viene fatto un backup completo, circa 10 giga, e poi ogni giorno uno incrementale, da 200 mega ciascuno, per una settimana. Il ripristino è granulare, fino a un file o database specifico. Se è necessario ripristinare da uno incrementale, non è necessario preoccuparsi prima del ripristino completo dell'intera catena, Plesk fa tutto da solo. Puoi caricare i backup ovunque: su FTP, dropbox, bucket s3, Google Drive, ecc.

La mia esperienza con Plesk
Giorno F: finalmente il programmatore ha completato il nuovo motore, lo abbiamo caricato in produzione, importato i vecchi dati e ci siamo seduti a scegliere il colore della nostra futura Maserati. Siamo ancora seduti e scegliamo.

Cominciarono i primi problemi. Il nuovo sito era presumibilmente più pesante del vecchio, ma il vero guadagno è stato che per attirare traffico hanno utilizzato, tra le altre cose, Yandex.Zen, che ha portato tantissimi visitatori. Il sito si è bloccato con 150 connessioni simultanee (non sto parlando di RPS, perché non lo hanno misurato). Abbiamo iniziato premendo i pulsanti e ruotando le manopole nell'area delle impostazioni php_fpm:
 
La mia esperienza con Plesk
Ehi, ha già 500 connessioni. Quando le carte di credito furono aggiunte ai mezzi di promozione, le ondate di traffico diventarono più grandi. Il prossimo traguardo sono le 1000 connessioni simultanee. Qui abbiamo dovuto rifinire il codice e guardare nell'anima del muscolo. Gli schizzi non hanno aiutato, ma non ce lo aspettavamo davvero. Abbiamo abilitato il registro delle query lente, aggiunto indici al database, rimosso query non necessarie dal codice e ancora una volta ripulito la configurazione di mysql secondo i consigli di mysqltuner.

Nuova sfida: 2000 connessioni. È appena riuscita a rilasciare la versione di Plesk 17.8, nella quale, tra le altre cose, è stata aggiunta la memorizzazione nella cache nginx. Aggiornato (sorprendentemente facile). Proviamo. Lavori! E poi hanno fatto un passo avanti, il feed Yandex.Zen ha smesso di funzionare. Il sito funziona, il feed non funziona. Il feed non funziona, non c'è traffico. L'atmosfera si sta riscaldando. Sotto la pressione delle circostanze e per mancanza di immaginazione, sono andato immediatamente su strace e nginx e ho trovato quello che cercavo. Si scopre che a un certo punto lo stupido nginx ha memorizzato nella cache il 500esimo errore vagante come risposta a Yandex get feed.xml. Risolto il problema aggiungendo eccezioni alle impostazioni della cache:

La mia esperienza con Plesk
È chiaro che l'armatore ha bisogno di ALTRO, le onde stanno lentamente aumentando. Per ora ce la stiamo facendo, ma abbiamo iniziato a sperimentare memcached in anticipo, fortunatamente Laravel lo supporta quasi fuori dagli schemi. In qualche modo non volevo installare memcached manualmente solo per "giocare un po'", quindi ho installato un'immagine docker. Direttamente dal pannello.

La mia esperienza con Plesk
Bene, ok, sto mentendo, dovevo entrare nella shell e installare il modulo tramite pecl. Proprio così istruzione. Per ora non c’è nulla da dire sull’aumento del traffico, non ci sono stati afflussi abbastanza grandi. Il motore del sito è collegato a localhost:11211, vengono visualizzate le statistiche, la memoria viene consumata. Se ti piace, vedremo cosa fare dopo. O lo lasciamo così, oppure mettiamo quello “vero” proprio nell’Asse. Oppure proviamo Redis allo stesso modo

Quindi è stato necessario allegare una mailing list. Nessun relè, solo autenticazione SMTP. Ho impostato un indirizzo email e utilizzo i suoi dettagli per inviare una newsletter tramite PHP.

La mia esperienza con Plesk
Non molto tempo fa è stato rilasciato Plesk Obsidian (18.0), abbiamo aggiornato senza timore in base all'esperienza passata. Tutto è andato liscio, non c’è nemmeno niente di cui parlare. La cosa piacevole è che la qualità dell'interfaccia è migliorata notevolmente, è diventata più moderna ed è diventata più comoda in alcuni punti. Cosa interessante Monitoraggio avanzato su Grafana.

La mia esperienza con Plesk
Non me ne sono ancora occupato in dettaglio, ma puoi, ad esempio, impostare avvisi per qualsiasi parametro nella tua email. Al proprietario, lol.

Mentre parlo dell'interfaccia, è reattiva e funziona davvero bene sul telefono. Nelle fasi iniziali, mentre cercavamo di trovare le impostazioni ottimali per PHP e altre cose, questo ci ha aiutato molto. E soprattutto quando un programmatore, in un impeto di entusiasmo lavorativo, fa qualcosa alle 23:XNUMX, e io, in un impeto di entusiasmo lavorativo, bevo vodka nello stabilimento balneare, e ho URGENTEMENTE bisogno di cambiare qualcosa.

La mia esperienza con Plesk
Oh, comunque. L'immagine mostra che è apparso PHP Composer. Non ci abbiamo ancora giocato, ma, diciamo, per Laravel, può far risparmiare un paio di accessi alla shell e un po' di tempo sull'installazione delle dipendenze. Lo stesso sistema esiste per Node.JS e Ruby.

Con SSL tutto è semplice. Se il dominio si risolve come previsto, Let's Encrypt viene eseguito in un clic e poi si aggiorna automaticamente, sia per il dominio stesso, sia per i sottodomini e persino per i servizi di posta.

La mia esperienza con Plesk
Plesk stesso come software è attualmente abbastanza piacevole e stabile. Si aggiorna silenziosamente e si aggiorna Axis, consuma poche risorse e funziona senza problemi. Non ricordo nemmeno di aver calpestato qualcosa da qualche parte, il che sarebbe stato un evidente difetto del prodotto. Naturalmente ci sono stati dei problemi, ma erano dovuti a una configurazione imperfetta o a qualche punto dell'incrocio, quindi non c'è nulla di cui lamentarsi. Le impressioni di lavorare con Plesk sono generalmente piacevoli. Ciò che non ha, e dobbiamo capirlo, è qualsiasi (qualsiasi) clustering. Né LB né HA. Puoi provarci, ma lo sforzo sarà tale che è meglio fare qualcosa di diverso fin dall'inizio.

Penso che possiamo riassumere. Per il caso in cui non c'è un amministratore, o non ce n'è abbastanza, quando il prezzo dell'hosting e dei siti che girano su di esso supera, beh, diciamo, 100 USD, quando non stiamo parlando di una condivisione bestiale di 1500 siti su un server, quando il decisore si trova a dover scegliere se assumere un amministratore part-time, o acquistare software e avere un amministratore per mezzo dollaro, o non averne affatto, ha sicuramente senso. Dal punto di vista dell'amministratore remoto, la stessa cosa. $ 10 al mese e consente di risparmiare tempo e offre flessibilità nel lavoro per un periodo molto lungoоuna quantità maggiore. Se, ad esempio, mi viene chiesto con forza di prendere un progetto simile sotto la mia protezione, insisterò per trasferirlo su Plesk.

La mia esperienza con Plesk

Fonte: habr.com

Aggiungi un commento