2024 Autor: Peter John Melton | [email protected]. Zuletzt bearbeitet: 2024-01-31 06:07
Wenn Sie einen dedizierten virtuellen Server zum Ausführen Ihrer Website erhalten, stehen die Chancen gut, dass er für alle konfiguriert ist und nicht angepasst wird, um die Leistung beim Ausführen einer Website zu maximieren.
Inhalt[verbergen]
|
Überblick
Es gibt eine Reihe von Problembereichen, in denen wir die Leistung maximieren möchten:
- Linux-Konfiguration In der Regel laufen Dienste, die nicht unbedingt erforderlich sind, und verschwenden Speicher, der für mehr Verbindungen verwendet werden kann.
- MySQL-Konfiguration Häufig basieren die Standardeinstellungen auf einem kleinen Server. Wir können einige wichtige Änderungen hinzufügen, um die Leistung erheblich zu steigern.
- Apache-Konfiguration Standardmäßig installieren die meisten Hosting-Provider Apache mit fast jedem installierten Modul. Es gibt keinen Grund, Module zu laden, wenn Sie sie niemals verwenden werden.
- PHP-Konfiguration Die Standardkonfiguration von PHP ist ähnlich aufgebläht. In der Regel werden viele zusätzliche Module installiert.
- PHP-Opcode-Cache Anstatt zuzulassen, dass PHP die Skripts jedes Mal neu kompiliert, speichert ein Opcode-Cache die kompilierten Skripts im Arbeitsspeicher, um die Leistung zu steigern.
- Backups Sollte wahrscheinlich einige automatisierte Sicherungen einrichten, da Ihr Hosting-Provider dies nicht für Sie tun wird.
- Sicherheit Natürlich ist Linux standardmäßig sicher genug, aber in der Regel gibt es einige krasse Sicherheitslücken, die Sie mit ein paar schnellen Einstellungen beheben können.
Linux-Konfiguration
Es gibt eine Reihe von Optimierungen, die Sie je nach verwendetem Server ändern können. Diese Verbesserungen betreffen einen Server, auf dem CentOS ausgeführt wird, sie sollten jedoch für die meisten DV-Server funktionieren.
DNS deaktivieren
Wenn Ihr Hosting-Provider das DNS für Ihre Domäne behandelt (wahrscheinlich), können Sie die Ausführung des DNS-Diensts deaktivieren.
disable dns /etc/init.d/named stop chmod 644 /etc/init.d/named
Der Befehl chmod entfernt die Ausführungsberechtigung aus dem Skript und verhindert, dass es beim Start ausgeführt wird.
Deaktivieren Sie SpamAssassain
Wenn Sie keine E-Mail-Konten auf Ihrem Server selbst verwenden, sollten Sie keine Anti-Spam-Tools ausführen. (Auch sollten Sie Google Apps ausprobieren, eine wesentlich bessere E-Mail-Lösung.)
/etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin
Deaktivieren Sie xinetd
Der xinetd-Prozess beherbergt eine Reihe anderer Prozesse, von denen keiner für einen typischen Webserver nützlich ist.
/etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd
Begrenzen Sie die Plesk-Speichernutzung
Wenn Sie das Plesk-Bedienfeld verwenden, können Sie erzwingen, dass weniger Speicherplatz benötigt wird, indem Sie eine Optionsdatei hinzufügen.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Fügen Sie der Datei folgende Zeilen hinzu:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
Beachten Sie, dass diese Option für MediaTemple-DV-Server bekannt ist, bei anderen jedoch nicht geprüft wurde. (Siehe Referenzen)
Plesk deaktivieren oder deaktivieren (optional)
Wenn Sie Plesk nur einmal im Jahr verwenden, gibt es keinen Grund, es überhaupt laufen zu lassen. Beachten Sie, dass dieser Schritt vollständig optional und etwas fortgeschrittener ist.
Führen Sie den folgenden Befehl aus, um Plesk zu deaktivieren:
/etc/init.d/psa stop
Sie können die Ausführung beim Start deaktivieren, indem Sie den folgenden Befehl ausführen:
chmod 644 /etc/init.d/psa
Wenn Sie es deaktivieren, können Sie es nicht manuell starten, ohne die Dateiberechtigungen zurückzusetzen (chmod u + x).
MySQL-Konfiguration
Abfrage-Cache aktivieren
Öffnen Sie Ihre Datei /etc/my.cnf und fügen Sie die folgenden Zeilen in Ihren Abschnitt [mysqld] ein:
[mysqld] query-cache-type = 1 query-cache-size = 8M
Sie können dem Abfrage-Cache mehr Speicher hinzufügen, wenn Sie möchten, aber nicht zu viel verwenden.
Deaktivieren Sie TCP / IP
Eine überraschend große Anzahl von Hosts ermöglicht standardmäßig den Zugriff auf MySQL über TCP / IP, was für eine Website keinen Sinn macht. Sie können herausfinden, ob mysql TCP / IP überwacht, indem Sie den folgenden Befehl ausführen:
netstat -an | grep 3306
Fügen Sie zur Deaktivierung der Datei /etc/my.cnf die folgende Zeile hinzu:
skip-networking
Apache-Konfiguration
Öffnen Sie Ihre httpd.conf -Datei, die sich häufig in /etc/httpd/conf/httpd.conf befindet
Finden Sie die Zeile, die so aussieht:
Timeout 120
Und ändere es dazu:
Timeout 20
Suchen Sie nun den Abschnitt, der diese Zeilen enthält, und passen Sie Folgendes an:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000
PHP-Konfiguration
Wenn Sie einen Server auf der PHP-Plattform optimieren, ist Folgendes zu beachten: Jeder einzelne Apache-Thread wird PHP an einem separaten Speicherort im Arbeitsspeicher laden. Das bedeutet, wenn ein nicht verwendetes Modul 256 KB Arbeitsspeicher zu PHP hinzufügt, verschwenden Sie in 40 Apache-Threads 10 MB Speicher.
Entfernen Sie nicht benötigte PHP-Module
Sie müssen Ihre php.ini-Datei finden, die sich normalerweise unter /etc/php.ini befindet. Beachten Sie, dass es bei einigen Distributionen ein Verzeichnis /etc/php.d/ mit einer Reihe von.ini-Dateien gibt. eine für jedes Modul.
Kommentieren Sie alle Lastmodulzeilen mit diesen Modulen aus:
- odbc
- snmp
- pdo
- odbc pdo
- Mysqli
- Ionenwürfel-Lader
- Json
- Imap
- ldap
- Flüche
Todo: Fügen Sie hier weitere Informationen hinzu.
PHP-Opcode-Cache
Es gibt eine Reihe von Opcode-Caches, die Sie verwenden können, einschließlich APC, eAccelerator und Xcache. Der letzte ist aufgrund meiner Stabilität meine persönliche Präferenz.
Laden Sie xcache herunter und extrahieren Sie es in ein Verzeichnis. Führen Sie dann die folgenden Befehle im Quellverzeichnis von xcache aus:
phpize./configure --enable-xcache make make install
Öffnen Sie Ihre php.ini-Datei und fügen Sie einen neuen Abschnitt für xcache hinzu. Sie müssen die Pfade anpassen, wenn Ihre PHP-Module von einem anderen Ort geladen werden.
vi /etc/php.ini
Fügen Sie der Datei den folgenden Abschnitt hinzu:
[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = 'myusername' xcache.admin.pass = 'putanmd5hashhere' [xcache]; Change xcache.size to tune the size of the opcode cache xcache.size = 16M xcache.shm_scheme = 'mmap' xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Change xcache.var_size to adjust the size of variable cache xcache.var_size = 1M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Off xcache.readonly_protection = On xcache.mmap_path = '/tmp/xcache' xcache.coredump_directory = '' xcache.cacher = On xcache.stat = On xcache.optimizer = Off
Todo: Müssen Sie dies etwas erweitern und in den Referenzen auf xcache verweisen.
Backups
Es ist nicht viel wichtiger als automatisierte Backups Ihrer Website. Möglicherweise können Sie Snapshot-Backups von Ihrem Hosting-Provider abrufen, die ebenfalls sehr nützlich sind, aber ich bevorzuge automatisierte Backups.
Automatisiertes Sicherungsskript erstellen
Normalerweise beginne ich damit, ein Verzeichnis / backups zu erstellen, darunter ein Verzeichnis / backups / files. Sie können diese Pfade anpassen, wenn Sie möchten.
mkdir -p /backups/files
Erstellen Sie nun ein backup.sh-Skript im Verzeichnis backups:
vi /backups/backup.sh
Fügen Sie der Datei Folgendes hinzu und passen Sie die Pfade und das mysqldump-Kennwort nach Bedarf an:
#!/bin/sh THEDATE=`date +%d%m%y%H%M` mysqldump -uadmin -pPASSWORD DATABASENAME > /backups/files/dbbackup$THEDATE.bak tar -cf /backups/files/sitebackup$THEDATE.tar /var/www/vhosts/my-website-path/httpdocs gzip /backups/files/sitebackup$THEDATE.tar find /backups/files/site* -mtime +5 -exec rm {}; find /backups/files/db* -mtime +5 -exec rm {};
Das Skript erstellt zuerst eine Datumsvariable, so dass alle Dateien für eine einzige Sicherung gleich benannt werden. Dann wird die Datenbank gesichert, die Webdateien werden aufgespeichert und sie werden gezippt. Mit den Suchbefehlen werden alle Dateien entfernt, die älter als 5 Tage sind, da der Festplatte nicht genügend Speicherplatz zur Verfügung stehen soll.
Machen Sie das Skript ausführbar, indem Sie den folgenden Befehl ausführen:
chmod u+x /backups/backup.sh
Als Nächstes müssen Sie es zuweisen, damit es automatisch von cron ausgeführt wird. Stellen Sie sicher, dass Sie ein Konto verwenden, das Zugriff auf das Sicherungsverzeichnis hat.
crontab -e
Fügen Sie der Crontab die folgende Zeile hinzu:
1 1 * * * /backups/backup.sh
Sie können das Skript vorab testen, indem Sie es ausführen, während Sie beim Benutzerkonto angemeldet sind. (Ich führe die Backups normalerweise als root aus)
Backups außerhalb des Standorts mit Rsync synchronisieren
Nachdem Sie nun automatisierte Sicherungen Ihres Servers ausgeführt haben, können Sie sie mithilfe des Dienstprogramms rsync an einem anderen Ort synchronisieren. In diesem Artikel erfahren Sie, wie Sie ssh-Schlüssel für die automatische Anmeldung einrichten: Fügen Sie dem Remote-Server einen öffentlichen SSH-Schlüssel in einem einzigen Befehl hinzu
Sie können dies testen, indem Sie diesen Befehl auf einem Linux- oder Mac-Computer an einem anderen Ort ausführen (ich habe einen Linux-Server zu Hause, auf dem ich das ausführte).
rsync -a [email protected]:/backups/files/* /offsitebackups/
Es dauert einige Zeit, bis es zum ersten Mal ausgeführt wird. Am Ende sollte Ihr lokaler Computer jedoch eine Kopie des Dateiverzeichnisses im Verzeichnis / offsitebackups / haben. (Stellen Sie sicher, dass Sie dieses Verzeichnis erstellen, bevor Sie das Skript ausführen.)
Sie können dies planen, indem Sie es einer crontab-Zeile hinzufügen:
crontab -e
Fügen Sie die folgende Zeile hinzu, die jede Stunde bei 45 Minuten rsync ausführen wird. Sie werden feststellen, dass wir hier den vollständigen Pfad für rsync verwenden.
45 * * * * /usr/bin/rsync -a [email protected]:/backups/files/* /offsitebackups/
Sie können es zu einem anderen Zeitpunkt oder nur einmal pro Tag ausführen. Das liegt ganz bei dir.
Beachten Sie, dass es viele Dienstprogramme gibt, mit denen Sie über ssh oder ftp synchronisieren können. Sie müssen rsync nicht verwenden.
Sicherheit
Als Erstes sollten Sie sicherstellen, dass Sie über ein normales Benutzerkonto verfügen, das Sie über ssh verwenden können, und sicherstellen, dass Sie mit su zum Root wechseln können. Es ist eine sehr schlechte Idee, ein direktes Login für root über ssh zuzulassen.
Deaktivieren Sie die Root-Anmeldung über SSH
Bearbeiten Sie die Datei / etc / ssh / sshd_config und suchen Sie nach der folgenden Zeile:
#PermitRootLogin yes
Ändern Sie diese Zeile folgendermaßen:
PermitRootLogin no
Stellen Sie sicher, dass Sie über ein reguläres Benutzerkonto verfügen, bevor Sie diese Änderung vornehmen, andernfalls können Sie sich selbst sperren.
Deaktivieren Sie die SSH-Version 1
Es gibt wirklich keinen Grund, etwas anderes als SSH Version 2 zu verwenden, da es sicherer ist als frühere Versionen. Bearbeiten Sie die Datei / etc / ssh / sshd_config und suchen Sie nach dem folgenden Abschnitt:
#Protocol 2,1 Protocol 2
Stellen Sie sicher, dass Sie nur das Protokoll 2 wie gezeigt verwenden.
Starten Sie den SSH-Server neu
Jetzt müssen Sie den SSH-Server neu starten, damit dies wirksam wird.
/etc/init.d/sshd restart
Suchen Sie nach offenen Ports
Mit dem folgenden Befehl können Sie feststellen, an welchen Ports der Server empfangsbereit ist:
netstat -an | grep LISTEN
Sie sollten wirklich nichts anderes als Ports 22, 80 und möglicherweise 8443 für plesk hören.
Richten Sie eine Firewall ein
Hauptartikel:Iptables unter Linux verwenden
Sie können optional eine iptables-Firewall einrichten, um weitere Verbindungen zu blockieren. Zum Beispiel blockiere ich normalerweise den Zugriff auf andere Ports als auf mein Arbeitsnetzwerk. Wenn Sie über eine dynamische IP-Adresse verfügen, möchten Sie diese Option vermeiden.
Wenn Sie alle Schritte in diesem Handbuch bereits befolgt haben, ist es wahrscheinlich nicht notwendig, eine Firewall zum Mix hinzuzufügen, aber es ist gut, Ihre Optionen zu verstehen.
Siehe auch
Iptables unter Linux verwenden
Verweise
- Optimierung Ihres DV-Servers (mediatemple.net)
- XCache
Empfohlen:
So wechseln Sie zu einer dedizierten Kamera, nachdem Sie eine Smartphone-Kamera verwendet haben
Im vergangenen Jahr stieg die Anzahl der verkauften Kameras zum ersten Mal seit fünf Jahren an. Ich habe zwar nichts anderes als eine persönliche Anekdote, um das zu untermauern, aber ich vermute, dass die Leute so gerne Fotos auf ihrem Smartphone machen, dass sich einige von ihnen entscheiden, eine dedizierte Kamera zu kaufen.
Dank Bitcoin ist der Kauf eines PCs besser als der Bau eines (für jetzt)
High-End-Grafikkarten sind derzeit sehr gefragt. Nicht wegen eines plötzlichen Aufblühens von PC-Spielern, sondern weil sie die effizienteste Möglichkeit sind, Kryptowährungs-Mining-Rigs mit zahlungskritischen Funktionen zu unterstützen. Dies macht den Bau eines PCs sehr, sehr teuer.
Hinzufügen eines Indikators, um zu sehen, auf welchem virtuellen Desktop Sie sich in Windows 10 befinden
Die Möglichkeit, mehrere Desktops zu haben, fehlte lange in Windows, bis Windows 10 es schließlich hinzufügte. Wir haben uns mit der Verwendung von virtuellen Desktops in Windows 10 befasst, aber es gibt mindestens eine fehlende Funktion, die wir Ihnen zeigen werden.
Hinzufügen eines virtuellen PCs zu XP (Teil 2)
OK! In Teil 1 haben wir die Grundkonfiguration für unseren virtuellen PC mit Windows Virtual PC 2007 durchgearbeitet und eingerichtet. Nun wollen wir das Betriebssystem laden und einige der Funktionen betrachten.
Hinzufügen eines virtuellen PCs zu XP (Teil 1)
Warum sollte Vista Ultimate alle coolen Spielzeuge wie Virtual PC erhalten? Sie können Microsoft Virtual PC 2007 jetzt zu Ihrer vorhandenen XP-Box hinzufügen. Dies ist ein kostenloser Download von Microsoft. In diesem Beitrag werde ich die Einrichtung und grundlegende Konfiguration einer virtuellen Maschine unter Windows XP durchgehen. Ich finde das für andere Microsoft-Betriebssysteme am nützlichsten. Wenn Sie ein anderes alternatives Betriebssystem unter Windows ausführen m