Einführung
Manchmal treten Probleme auf, wenn einer unserer Webserver oder Websites ausfällt. Wir sollten in der Lage sein, dieses Problem zu identifizieren, das wahrscheinlich die Probleme verursacht, und das Problem zu beheben.
In diesem Artikel teilen wir Ihnen einige Schritte zur Fehlerbehebung mit, die einige der häufigsten Schritte sind, die von einem Administrator ausgeführt werden, wenn auf eine Website nicht korrekt zugegriffen werden kann. Sie können sich auf diese Schritte beziehen und das Problem beheben, damit Sie Ihre Website in Betrieb nehmen können läuft.
Voraussetzungen
Um dieses Problem zu beheben, benötigen Sie:
- Zugriff auf den Linux-Server mit einem sudo-Benutzer.
Schritt 1:Überprüfen Sie den Serverstatus
Bevor Sie mit den genannten Schritten fortfahren, müssen wir zunächst prüfen, ob Sie auf den Server selbst zugreifen können. Manchmal ist der Server selbst ausgefallen. Sie können dies mit dem Befehl ping und ssh überprüfen
ping your_server_ip
Wenn Sie Ihren Server und sein UP anpingen können, erhalten Sie die Ausgabe wie unten
e2e@compaqlaptop:~$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=18.0 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=20.1 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=21.3 ms ^C --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 18.042/19.837/21.342/1.362 ms e2e@compaqlaptop:~$
Wenn Ihr Server heruntergefahren ist, erhalten Sie in diesem Fall keinen Ping. Sie können Ihre Serverkonsole auf Fehler überprüfen und Ihren Server über Myaccount neu starten
Hinweis:Sie können den Server manchmal nicht anpingen, selbst wenn Ihr Server UP ist, und dies kann daran liegen, dass Ping auf Ihrem Server deaktiviert ist
Sie sollten auch in der Lage sein, SSH zu verwenden und sich beim Server anzumelden, um zu überprüfen, ob er läuft und ordnungsgemäß funktioniert. Sie können mit dem folgenden Befehl über ssh auf Ihren Server zugreifen
ssh [email protected]
Wenn Sie sich nicht bei Ihrem Server anmelden können, besteht die Möglichkeit, dass Ihr Server ausgefallen oder hängend ist und überprüfen Sie Ihre Serverkonsole auf Fehler und starten Sie Ihren Server über Myaccount neu
Schritt 2:Überwachung Ihres Servers
Eine hohe Prozessorlast oder Speicherverbrauch kann dazu führen, dass Ihr Server nicht mehr reagiert. In diesem Artikel erfahren Sie, wie Sie E2E-Server über Zabbix überwachen
Sobald Sie die Anomalien bei der Nutzung Ihrer Serverressourcen identifiziert haben, können Sie die erforderlichen Maßnahmen ergreifen, um das Problem zu vermeiden.
Schritt 3:Überprüfen Sie die Protokolle
Bevor wir eines der Probleme aufspüren, müssen wir zuerst die Protokolle unseres Webservers und der zugehörigen Komponenten überprüfen. Wenn wir einen Fehler gefunden haben Protokolle oder verdächtige Protokolle zum Zugriff logs, können wir die Probleme genau identifizieren.
Die Protokolle befinden sich normalerweise im Verzeichnis /var/log . Wenn Sie einen Apache-Server auf einem Ubuntu-Server ausführen, werden die Protokolle standardmäßig in /var/log/apache2 gespeichert . Überprüfen Sie die Dateien in diesem Verzeichnis, um zu sehen, welche Art von Fehlermeldungen generiert werden. Wenn Sie eine Distribution verwenden, die standardmäßig auf Apache als httpd verweist, werden die Protokolle unter
gespeichert/var/log/httpd.log
Wenn Sie Nginx als Webserver verwenden, befinden sich die Protokolle normalerweise an der folgenden Stelle
/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/nginx/nginx_error.log
/var/log/nginx/access_error.log
Überprüfen Sie die Dateien in diesem Verzeichnis, um zu sehen, welche Art von Fehlermeldungen generiert werden. Alternativ können Sie auch die Konfigurationsdateien des Webservers überprüfen, wenn Sie einen manuellen Pfad für Protokolle konfiguriert haben.
Um die neuesten vom Server generierten Protokolle zu überprüfen, können Sie tail ausführen Befehl, wie im folgenden Beispiel gezeigt
tail -f /var/log/nginx/access.log
tail -f /var/log/httpd.log
Sie können auch mit weniger anzeigen Befehl, um vollständige Protokolle wie unten anzuzeigen. Stellen Sie sicher, dass Sie den Protokolldateipfad gemäß Ihrem im folgenden Befehl ändern.
less /var/log/nginx/access.log
Sobald Sie das Problem anhand der Protokolle identifiziert haben, können Sie das Problem leicht erkennen und entsprechend beheben.
Schritt 4 :Stellen Sie sicher, dass Ihr Webserver läuft
Sie können überprüfen, ob Ihre Dienste ordnungsgemäß ausgeführt werden. Eine Methode zum Überprüfen, ob die Dienste ausgeführt werden, ist die bevorzugte Methode der Distribution, indem Sie mit dem folgenden freigegebenen Befehl überprüfen.
Verwenden Sie den Status Befehl, um zu überprüfen, ob der Dienst aktiv ist oder nicht. Wenn der Dienst nicht läuft, können Sie ihn unten mit Start starten Befehl
Wenn Sie eine Distribution verwenden, die Apache als Apache2 bezeichnet, finden Sie die folgenden Befehle zur Verwendung der Apache2-Funktionalität
service apache2 start
service apache2 stop
service apache2 restart
service apache2 reload
service apache2 status
Wenn Sie eine Distribution verwenden, die auf Apache als httpd verweist, lauten die Befehle wie folgt:
service httpd start
service httpd stop
service httpd restart
service httpd reload
service httpd status
Die Befehle zur Verwendung der Nginx-Funktionalität sind wie folgt
service nginx start
service nginx stop
service nginx restart
service nginx reload
service nginx status
Schritt 5:Überprüfung der Syntax des Webservers
Wenn Ihr Webserver nicht startet, bedeutet dies, dass möglicherweise ein Problem mit Ihrer Konfigurationsdatei vorliegt.
Sowohl Apache als auch Nginx benötigen eine korrekte Direktivensyntax, damit die Dateien gelesen werden können. Die Konfigurationsdateien befinden sich wie folgt
Standardkonfigurationsverzeichnisse für Apache sind
Debian- und Ubuntu-Distributionen:/etc/apache2/
Fedora, CentOS-Distributionen:/etc/httpd/
Konfigurationsverzeichnisse für Nginx ist
/etc/nginx/
Jeder dieser Webserver bietet Ihnen auch die Möglichkeit, die Konfigurationssyntax Ihrer Dateien zu überprüfen. Um die Syntax Ihrer Apache-Konfigurationsdateien zu überprüfen, ohne den Server neu starten zu müssen, können Sie den folgenden Befehl auf Debian- und Ubuntu-Systemen ausführen
apache2ctl -t
httpd -t
Um die Konfigurationssyntax auf Nginx zu überprüfen, verwenden Sie den folgenden Befehl
nginx -t
Sobald Sie den obigen Befehl ausführen, erhalten Sie eine Nachricht wie Syntax OK oder Test erfolgreich ,Das bedeutet, dass bei Ihrer Webserverkonfiguration kein Fehler vorliegt. Wenn Sie eine Meldung wie „Test fehlgeschlagen“ erhalten, gibt es ein ungültiges Argument, das in der Konfigurationsdatei angegeben ist und bearbeitet werden muss.
Schritt 6:Läuft Ihr Datenbank-Backend einwandfrei
Wenn Sie Ihre Website so konfiguriert haben, dass sie sich mit einem Datenbank-Back-End wie MySQL, PostreSQL, MongoDB usw. verbindet, müssen Sie sicherstellen, dass sie betriebsbereit ist. Sie können dies tun, während Sie nach einem Webserver suchen.
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihre Datenbank MySQL/Mongod ist, je nachdem, welche Sie ausführen.
service mysql status
service mysqld status
service mongod status
Alternativ können Sie dies auch mit dem folgenden netstat-Befehl
überprüfennetstat -ntlp | grep mysql
Sie erhalten die folgende Ausgabe, wenn Ihr MySQL betriebsbereit ist.
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3356/mysqld
Schritt 7:Überprüfen Sie, ob Ihr Web-/App-Server eine Verbindung herstellen kann zum Datenbank-Backend
Auch wenn Ihr Webserver und Ihr Datenbankserver betriebsbereit sind und gut laufen, können wir manchmal Probleme mit der Konnektivität haben, da Ihre Anwendung keine erfolgreiche Verbindung zur Datenbank herstellen kann.
Beispielsweise können auf einer WordPress-Site die Datenbankverbindungseinstellungen mit der Konfiguration in der Datei wp-config.php getestet werden. Sie müssen überprüfen, ob DB_NAME, DB_USER und DB_PASSWORD korrekt sind, damit sich Ihre Website mit der Datenbank verbinden kann.
Sie können testen, ob die Datei die richtigen Informationen enthält, indem Sie versuchen, sich manuell mit der Datenbank zu verbinden, indem Sie den entsprechenden Wert im folgenden Befehl ändern
mysql -hDB_Host -uDB_USER -pDB_PASSWORD
Schritt 8:Stellen Sie sicher, dass die Ports geöffnet sind
Selbst wenn alle Konfigurationen und Konnektivitäten richtig sind, können Sie manchmal nicht auf die Site zugreifen, da die konfigurierten Ports zugänglich sein müssen. Webserver laufen auf Port 80 für normalen Webverkehr und verwenden Port 443 für mit SSL verschlüsselten Verkehr.
Mit dem Telnet-Befehl
können Sie überprüfen, ob die konfigurierten Ports geöffnet sindtelnet your_server_ip 80
telnet your_server_ip 443
Sie erhalten eine Ausgabe wie unten, wenn Ihre Ports offen sind
e2e@compaqlaptop:~$ telnet xx.xx.xx.xx 80
Versuche xx.xx.xx.xx…
Verbunden mit xx.xx.xx.xx.
Das Escape-Zeichen ist „^]“.
Sie können auch überprüfen, ob Ihr App/Web-Server eine Verbindung zu Ihrem Datenbankport am Back-End herstellen kann. Der MySQL-Server wird standardmäßig auf Port 3306 ausgeführt
telnet your_database_server_ip 3306
Wenn Ihre Webports oder Datenbankports nicht zugänglich sind, sollten Sie sich Ihre Firewall-Konfiguration ansehen. Möglicherweise müssen Sie Port 80, Port 443 bzw. Port 3306 öffnen.
Schritt 9:Überprüfen der DNS-Einstellung
Sie müssen auch sicherstellen, dass Ihre Domain korrekt auf die Server-IP verweist. Wenn Sie mit der IP und nicht mit Ihrem Domainnamen auf die Site zugreifen können, müssen Sie möglicherweise Ihre DNS-Einstellungen überprüfen.
Mit dig können Sie überprüfen, ob Ihre Website auf die richtige IP verweist Befehl
dig A example.com +short
Sie erhalten die folgende Ausgabe
e2e@compaqlaptop:~$ dig A example.com +short
xx.xx.xx.xx
e2e@compaqlaptop:~$
Überprüfen Sie außerdem Ihre virtuellen Apache-Hostdateien oder die Blockdateien des Nginx-Servers, um sicherzustellen, dass sie so konfiguriert sind, dass sie auf Anfragen für Ihre Domain reagieren.
Schlussfolgerung
Wir hoffen, dass die oben genannten Tipps zur Fehlerbehebung Ihnen geholfen haben, einige der häufigsten Probleme aufzuspüren und zu beheben, mit denen Administratoren konfrontiert sind, wenn sie versuchen, ihre Websites zum Laufen zu bringen sie in den Kommentaren.