Meine Erfahrung mit Plesk

Ich möchte einige Eindrücke über die Notwendigkeit oder Unnötigkeit eines Control Panels für ein kommerzielles Einzelserver-Webprojekt mit einem sehr teilzeitbeschäftigten Administrator teilen. Die Geschichte begann vor ein paar Jahren, als Bekannte mich baten, den Kauf eines Geschäfts - einer Nachrichtenseite - aus technischer Sicht zu begleiten. Es war notwendig, ein wenig zu verstehen, woran gearbeitet wurde, sicherzustellen, dass alle erforderlichen Details in der richtigen Form und Menge übertragen wurden, und strategisch herauszufinden, was verbessert werden könnte.


Der Deal fand statt, der Geiger wurde nicht mehr gebraucht. Das Ende Nicht wirklich.

Die Seite drehte sich auf einem Dual-Core-VMk mit 4 Gigabyte unter Linode, auf einem moosigen Debian5 mit einer Betriebszeit von 400 Tagen und einer solchen Liste nicht aktualisierter Pakete. Webpart auf Samopisny TsMSke, Nginx, PHP5.3 FPM, MySQL abgestimmt Percona. Im Prinzip hat es funktioniert.

Parallel zu den Gesprächen mit mir suchte der neue Eigentümer einen Programmierer, um das Projekt zu verwirklichen. Hab es gefunden. Der Programmierer bewertete den Verkehr und das Volumen und entschied, dass er in der Lage war, das Kostenmanagement zu optimieren. Er migrierte die gesamte Site auf ein 700-Rubel-Shared-Hosting unter der Kontrolle seines üblichen IS **** er. Ein paar Tage später noch einmal ein Anruf vom Besitzer: "Alles verlangsamt sich und es scheint, als wären wir kaputt." Ich habe versucht, die Situation über das Panel zu korrigieren, aber nach einigen erfolglosen Versuchen, die Version des PCP oder des Handlers von fcgi auf fpm zu ändern, habe ich aufgegeben und bin in die Shell geklettert. Dort fand ich das mitgelieferte Debug, das im gesamten Internet mit einem Passwort von einem Muskel leuchtete, 777 auf einigen Ordnern, die zu diesem Zeitpunkt von einer Flut von Malvari und ähnlichen Spielen geknackt wurden. Der Eigentümer erkannte und entschied, dass das Sparen von Hosting, Programmierer und Administrator, die mit einem Auge darauf schauen würden, wie die Dinge laufen, falsch ist.

Wir gehen zu RuVDS. Etwas näher als die britische Linode und wenn Sie plötzlich persönliche Daten speichern möchten, müssen Sie nirgendwo anders hin. Da geplant war, das Projekt zu erweitern, nutzten sie die VMKU "zum Wachsen": 4 Kerne, 8 Gigabyte Speicher, 80 GB Festplatte. Es ist nicht so, dass ich nicht weiß, wie man Nginx-Konfigurationen mit meinen Händen benutzt. Ich hatte einfach nicht die Begeisterung, dieses Projekt so intensiv durchzuführen (siehe oben über Teilzeit). Weil - setzen Sie Plesk (hier werde ich die Installationsdetails weglassen, weil sie im Großen und Ganzen nicht da sind: Ich habe das Installationsprogramm gestartet, das Passwort für den Administrator festgelegt, den Schlüssel eingegeben - alles), damals war es 17.0. Die Grundeinstellungen funktionieren einigermaßen, es gibt fail2ban und die neuesten verfügbaren Versionen von PHP, nginx.

Wahrscheinlich lohnt es sich, anzuhalten und zu erklären, warum. Da ich solche Dinge selten mache und keine speziellen Werkzeuge und Rohlinge für jeden Fall habe, war klar, dass eine Art Automatisierung grundlegender Dinge erforderlich war, erstens, schnell, zweitens, sicher und drittens, alle Best Practices hat jemand schon umgesetzt.

Also setzen Sie. Er sparte anständig Zeit, und der Neustart der Site auf dem neuen Server verlief fast augenblicklich. Es blieb, um mit der Muskelkonfiguration zu fummeln, die Hälfte des Speichers bereitzustellen und die Anzahl der Pufferpools zu erhöhen, und Nginx die Hälfte der Kerne zuzuweisen (Splash berührt keine globalen Konfigurationen), und ein paar Tage lang in die Shell zu gehen, um die mysqltuner-Statistiken anzusehen. Ja, und ich habe ein bezahltes ImunifyAV aus dem Erweiterungskatalog gekauft, um die überfluteten Malvari loszuwerden. Es gab 11.000 infizierte Dateien. Das Schlimme ist, dass verschleierte Codestücke in die Statik gegossen werden und das Bürsten mit den Händen völlig langweilig wäre. Zuerst habe ich ClamAV ausprobiert, aber es stellte sich heraus, dass er solche Dinge nicht nahm, aber ImunifyAV konnte. Darüber hinaus bleiben die ausgehärteten Dateien in einwandfreiem Zustand, nur ein Teil der Malware wird entfernt.

Die Rechnung ist einfach: 50 US-Dollar pro Monat für VMKu, 10 US-Dollar für Splash (eigentlich weniger, weil Sie es sofort für ein Jahr mit einem Rabatt von zwei Monaten gekauft haben) und 3 US-Dollar für ein Virenschutzprogramm. Oder eine Menge Geldkoffer für meine Zeit, die ich zuerst auf dem Server ausgeben würde, um diese Ställe manuell zu harken. Der Besitzer ist sehr zufrieden mit dieser Ausrichtung.


Inzwischen haben sie einen neuen Programmierer gefunden. Wir einigten uns mit ihm auf die Verteilung der Verantwortung, erstellten eine Subdomain für die Testversion und begannen mit der Arbeit. Er hat eine neue Version der Site auf Laravel gesehen, und ich habe mir fail2ban% angeschaut.


Interessanterweise hört der Strom der Neugierigen nicht auf, und die Liste der verbotenen Adressen enthält immer etwa hundert Adressen. Der Effekt ist interessant: Insbesondere wenn ich in die Shell gehe, sehe ich normalerweise etwa 20000 - 30000 erfolglose Versuche, bei der Begrüßung über SSH einzutreten. Bei eingeschaltetem fail2ban ca. 70. Investierter Aufwand: 0. Leider gab es einen Teertropfen. Standardmäßig war WAF (Modsecurity) "halb aktiviert": im Erkennungsmodus. Das heißt, er hat verdächtige Aktivitäten in das Protokoll geschrieben, aber tatsächlich nichts unternommen. Und fail2ban las wahllos alle Protokolle gemäß den enthaltenen Gefängnissen und tränkte alles, was sich bewegte. So haben wir die Hälfte der Redaktion gesperrt: D. Ich musste dieses Gefängnis deaktivieren und die erforderlichen IP-Adressen aus Gründen der Zuverlässigkeit auf die weiße Liste setzen. Der Aufwand ist groß: zweimal mit der Maus stecken und den Redakteuren beibringen, ihre IP-Adresse zu sagen.


Was dem Programmierer sofort gefiel, war die Möglichkeit, Datenbanken direkt im Panel hochzuladen und schnell auf phpMyAdmin zuzugreifen


Was mir gefallen hat - Protokolle und Backups. Protokolle werden automatisch geschrieben und gedreht. Backups werden sehr einfach konfiguriert. In der schleppendsten Zeit wird eine vollständige Sicherung durchgeführt, und zwar in 10 Gigs und dann eine Woche lang jeden Tag in inkrementellen 200 Megabyte. Granulare Wiederherstellung in eine bestimmte Datei oder Datenbank. Wenn Sie eine inkrementelle Wiederherstellung durchführen müssen, müssen Sie sich nicht erst mit der vollständigen Wiederherstellung der gesamten Kette befassen. Splash erledigt alles selbst. Sie können Backups überall hochladen: auf FTP, auf Dropbox, S3 Bucket, Google Drive und mehr.


Tag F: Der Programmierer hat endlich die neue Engine fertiggestellt, wir haben sie in das Produkt gegossen, die alten Daten importiert und uns gesetzt, um die Farbe ihres zukünftigen Maserati zu wählen. Wir wählen immer noch.

Die ersten Probleme begannen. Die neue Site war erwartungsgemäß schwerer als die alte, aber der eigentliche Grund war, dass Yandex.Zen unter anderem verwendet wurde, um Verkehr anzuziehen, der die Besucher in großen Mengen einholte. Die Seite wurde bei 150 gleichzeitigen Verbindungen gebogen (ich spreche nicht von RPS, weil ich es nicht gemessen habe). Im php_fpm-Einstellungsbereich haben wir angefangen, Knöpfe zu drücken und Knöpfe zu drehen:


Op, hält bereits 500 Verbindungen. Wenn die Kreditkarte auf das Werbemittel angewendet wird, werden die Verkehrswellen größer. Der nächste Meilenstein sind 1000 gleichzeitige Verbindungen. Hier musste ich auf den Code verzichten und auf die Muskeln in meiner Seele schauen. Der Spritzer hat nicht geholfen, aber sie haben es nicht wirklich erwartet. Sie haben das langsame Abfrageprotokoll aktiviert, die Indizes in der Datenbank blockiert, unnötige Abfragen aus dem Code entfernt und die mysql-Konfiguration erneut auf Anraten von mysqltuner gekämmt.

Neue Herausforderung - 2000 Verbindungen. Gerade ist es gelungen, die Version Plesk 17.8 herauszubringen, in der unter anderem das Nginx-Caching verschraubt wurde. Aktualisiert (überraschend einfach). Wir versuchen es. Es funktioniert Und dann traten sie leise ein, der Yandex.Zen-Feed funktionierte nicht mehr. Die Seite funktioniert, der Feed funktioniert nicht. Der Feed funktioniert nicht, kein Verkehr. Die Atmosphäre erwärmt sich. Unter dem Druck der Umstände und mangelnder Vorstellungskraft stieg ich sofort zu Nginx und fand, wonach ich suchte. Es stellte sich heraus, dass der dumme Nginx irgendwann den 500. Fehler als Reaktion auf die Yandex-Datei get feed.xml im Cache zwischengespeichert hat. Korrigiert durch Hinzufügen von Ausnahmen zu den Cache-Einstellungen:


Es ist klar, dass der Besitzer NOCH braucht, die Wellen nehmen langsam zu. Während wir uns damit beschäftigen, haben wir aber schon im Vorfeld angefangen, mit memcached zu experimentieren, da Laravel es fast out of the box unterstützt. Irgendwie wollte ich memcached nicht mit meinen Händen zum „Herumspielen“ bringen, also habe ich das Docker-Image installiert. Direkt aus dem Panel.


Nun, ich lüge, ich musste in die Hülle und das Modul durch Pecl stecken. Direkt nach Anleitung . Über die Durchsatzsteigerung gibt es nichts zu sagen, es gab nicht genügend große Zuströme. Die Site-Engine hat localhost gefunden: 11211, die Statistiken werden angezeigt, die Erinnerung frisst. Wenn es Ihnen gefällt, lassen Sie uns sehen, was als nächstes zu tun ist. Entweder lassen Sie es so oder setzen Sie das "Reale" direkt in die Achse. Oder versuchen Sie es erneut auf die gleiche Weise

Dann musste ich eine Mailingliste anhängen. Keine Relais, nur SMTP-Authentifizierung. Ich habe eine Postanschrift bekommen, durch die Angaben über PHP machen wir den Newsletter.


Vor nicht allzu langer Zeit erschien Plesk Obsidian (18.0), aktualisiert nach den bisherigen Erfahrungen ohne Angst. Alles verlief reibungslos, es gibt nichts, worüber man reden könnte. Von der angenehmen - die Schnittstelle hat sich in der Qualität stark verbessert, hat sich modernisiert und ist an einigen Stellen bequemer geworden. Cooles Stück Advanced Monitoring auf Grafana.


Ich habe es noch nicht herausgefunden, aber Sie können beispielsweise Warnungen für jeden Parameter in der E-Mail konfigurieren. An den Besitzer, lol.

Da ich über die Benutzeroberfläche spreche, ist sie anpassungsfähig und funktioniert sehr gut auf dem Telefon. In der Anfangsphase, als wir versuchten, die optimalen PHP-Einstellungen und andere Dinge zu finden, hat es sehr geholfen. Und vor allem, wenn ein Programmierer mit einem Anfall von Arbeitsbegeisterung um 23 Uhr etwas tut und ich in einem Anfall von Arbeitsbegeisterung Wodka in einem Bad trinke und DRINGEND etwas wechseln muss.


Ach übrigens. Auf dem Bild erschien PHP Composer. Wir haben noch nicht mit ihm gespielt, aber zum Beispiel kann er für denselben Laravel ein paar Logins in der Shell und einige Zeit für die Installation von Abhängigkeiten sparen. Das gleiche System gibt es für Node.JS und Ruby.

Mit SSL ist alles einfach. Wenn sich die Domain ändert, wo sie sich befinden soll, wird Let's Encrypt mit einem Klick ausgeführt und von selbst weiter aktualisiert, sowohl für die Domain selbst als auch für Subdomains und sogar für Mail-Dienste.


Plesk selbst ist als Software derzeit recht angenehm und stabil. Aktualisiert sich selbst und die Achse ist leise, verbraucht wenig Ressourcen und läuft reibungslos. Ich kann mich nicht einmal daran erinnern, dass ich irgendwo auf etwas getreten bin, was ein klarer Mangel am Produkt wäre. Natürlich gab es Probleme, aber sie waren entweder auf eine fehlerhafte Konfiguration zurückzuführen oder befanden sich irgendwo an der Kreuzung. Es gab also nichts zu beanstanden. Die Eindrücke der Arbeit mit Splash sind im Allgemeinen angenehm. Was darin fehlt, und das muss man verstehen, ist ein beliebiges Clustering. Weder LB noch HA. Sie können es versuchen, aber es wird so viel Aufwand geben, dass es besser ist, zunächst etwas anderes zu tun.

Ich denke, Sie können zusammenfassen. Für den Fall, dass es keinen Administrator gibt oder dies nicht ausreicht, wenn der Preis für das Hosting und die darauf ausgeführte (n) Site (s) 100 cu überschreitet, wenn es sich nicht um den Viehanteil von 1.500 Sites auf dem Server handelt, wenn Sie sich vor dem Entscheidungsträger befinden Es lohnt sich, einen Administrator in Teilzeit zu engagieren oder Software zu kaufen und einen Administrator für „Half-Bumps“ zu erhalten, oder es überhaupt nicht zu starten - das ist auf jeden Fall sinnvoll. Aus Sicht des Remote-Administrators - das Gleiche. 10 $ pro Monat und spart Zeit und gibt Flexibilität bei der Arbeit für eine sehr große Menge. Wenn ich zum Beispiel dringend gebeten werde, ein ähnliches Projekt unter die Lupe zu nehmen, werde ich auf dem Transport nach Plesk bestehen.

Source: https://habr.com/ru/post/de484812/


All Articles