Introduzione
A volte potremmo riscontrare problemi quando uno dei nostri server web o siti è inattivo, dovremmo essere in grado di identificare questo problema che probabilmente sta causando i problemi e risolverlo.
In questo articolo, condivideremo alcuni passaggi per la risoluzione dei problemi che sono alcuni dei passaggi comuni eseguiti da un amministratore quando un sito non è accessibile correttamente, puoi fare riferimento a questi passaggi e risolvere il problema in modo da poter aggiornare il tuo sito e in esecuzione.
Prerequisiti
Per risolvere questi problemi, avrai bisogno di:
- Accesso al server Linux,con un utente sudo.
Passaggio 1:verifica lo stato del server
Prima di procedere con i passaggi citati, per prima cosa dobbiamo verificare se sei in grado di accedere al server stesso. A volte il server stesso potrebbe essersi interrotto. Puoi verificarlo con il comando ping e ssh
ping your_server_ip
Se riesci a eseguire il ping del tuo server e del suo UP, otterrai l'output come di seguito
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:~$
Se il tuo server è inattivo, in tal caso non riceverai alcun ping. Puoi controllare la console del tuo server per eventuali errori e riavviare il tuo server tramite Il mio account
Nota:a volte potresti non essere in grado di eseguire il ping del server anche quando il tuo server è attivo e ciò potrebbe essere dovuto alla disattivazione del ping sul tuo server
Dovresti anche essere in grado di accedere a SSH e accedere al server per verificare se è attivo e funzionante, puoi accedere al tuo server tramite ssh con il comando seguente
ssh [email protected]
se non riesci ad accedere al tuo server, è probabile che il tuo server sia inattivo o bloccato e controlla la console del tuo server per eventuali errori e riavvia il server tramite il mio account
Fase 2:monitoraggio del tuo server
Un carico elevato del processore o un consumo di memoria elevato possono impedire la risposta del server. Puoi fare riferimento a questo articolo su come monitorare il server E2E tramite Zabbix
Una volta identificate le anomalie nell'utilizzo delle risorse del server, è possibile intraprendere le azioni necessarie di conseguenza per prevenire il problema.
Fase 3:controlla i log
Prima di rintracciare qualsiasi problema, dobbiamo controllare prima i registri del nostro server web e dei relativi componenti. Se abbiamo riscontrato un errore log o qualsiasi log sospetto all'accesso logs, saremo in grado di identificare i problemi con precisione.
I log saranno generalmente presenti nella directory /var/log . se hai un server Apache in esecuzione su un server Ubuntu, per impostazione predefinita i log verranno conservati in /var/log/apache2 . Controlla i file in questa directory per vedere che tipo di messaggi di errore vengono generati. Se stai utilizzando una distribuzione che fa riferimento ad Apache come httpd per impostazione predefinita, i log verranno conservati in
/var/log/httpd.log
Se stai utilizzando Nginx come server web, i log di solito si trovano nella posizione sottostante
/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/nginx/nginx_error.log
/var/log/nginx/access_error.log
Controlla i file in questa directory per vedere che tipo di messaggi di errore vengono generati. In alternativa puoi anche controllare i file di configurazione del server web se hai configurato un percorso manuale per i log.
Per controllare gli ultimi log generati dal server, puoi eseguire sotto tail comando come mostrato nell'esempio seguente
tail -f /var/log/nginx/access.log
tail -f /var/log/httpd.log
Puoi anche visualizzare con meno comando per visualizzare i registri completi come di seguito, assicurati di modificare il percorso del file di registro come indicato nel comando seguente.
less /var/log/nginx/access.log
una volta identificato il problema nei registri, puoi facilmente rilevare il problema e risolverlo in modo accroding.
Fase 4:assicurati che il tuo server web sia in esecuzione
Puoi verificare se i tuoi servizi sono attivi e funzionanti correttamente, un metodo per verificare se i servizi sono in esecuzione è il metodo preferito di distribuzione è controllare con il comando condiviso di seguito.
Usa stato comando per verificare se il servizio è attivo o meno. Se il servizio non è in esecuzione, puoi avviarlo con avvio di seguito comando
Se stai utilizzando una distribuzione che fa riferimento ad Apache come Apache2, i comandi per utilizzare la funzionalità di apache2 sono i seguenti
service apache2 start
service apache2 stop
service apache2 restart
service apache2 reload
service apache2 status
Se stai usando una distribuzione che fa riferimento ad Apache come httpd, i comandi sono i seguenti:
service httpd start
service httpd stop
service httpd restart
service httpd reload
service httpd status
I comandi per utilizzare la funzionalità Nginx sono i seguenti
service nginx start
service nginx stop
service nginx restart
service nginx reload
service nginx status
Passaggio 5:verifica della sintassi del server Web
Se il tuo server web non si avvia, significa che potrebbe esserci un problema con il tuo file di configurazione.
Sia Apache che Nginx necessitano della sintassi della direttiva corretta per poter leggere i file. I file di configurazione si trovano come di seguito
Le directory di configurazione predefinite per Apache sono
Distribuzioni Debian e Ubuntu:/etc/apache2/
Fedora, distribuzioni CentOS:/etc/httpd/
Le directory di configurazione per Nginx sono
/etc/nginx/
Ognuno di questi web server ti offre anche la possibilità di controllare la sintassi di configurazione dei tuoi file. Per controllare la sintassi dei tuoi file di configurazione di Apache senza dover riavviare il server, puoi eseguire il seguente comando sui sistemi Debian e Ubuntu
apache2ctl -t
httpd -t
Per controllare la sintassi di configurazione su Nginx, utilizzare il comando seguente
nginx -t
Una volta eseguito il comando precedente, riceverai un messaggio come Sintassi OK o Il test è riuscito ,Ciò significa che non ci sono errori nella configurazione del tuo server web.
Passaggio 6:il back-end del database funziona correttamente
Se hai configurato il tuo sito per la connessione con il back-end di database come MySQL, PostreSQL, MongoDB, ecc. devi assicurarti che sia attivo e funzionante. Puoi farlo controllando il server Web.
Esegui il comando seguente per verificare se il tuo database MySQL/Mongod qualunque sia in esecuzione.
service mysql status
service mysqld status
service mongod status
In alternativa puoi anche verificare con il comando netstat di seguito
netstat -ntlp | grep mysql
Riceverai l'output come di seguito, se il tuo MySQL è attivo e funzionante.
tcp 0 0 127.0.0.1:3306 0.0.0.0:* ASCOLTA 3356/mysqld
Passaggio 7:verifica se il tuo server Web/app è in grado di connettersi al back-end del database
Anche se il server Web e il server del database sono attivi e funzionano correttamente, a volte potremmo riscontrare problemi con la sua connettività poiché la tua applicazione non sarà in grado di connettersi correttamente al database.
Ad esempio, in un sito WordPress, le impostazioni di connessione al database possono essere testate con la configurazione che si trova nel file wp-config.php. Devi verificare che DB_NAME, DB_USER e DB_PASSWORD siano corretti affinché il tuo sito si connetta al database.
Puoi verificare se il file contiene le informazioni corrette provando a connetterti manualmente al database modificando il valore appropriato nel comando seguente
mysql -hDB_Host -uDB_USER -pDB_PASSWORD
Fase 8:assicurati che le porte siano aperte
Anche se tutta la configurazione e la connettività sono corrette, a volte non è possibile accedere al sito poiché le porte configurate devono essere accessibili. I server Web funzionano sulla porta 80 per il normale traffico Web e utilizzano la porta 443 per il traffico crittografato con SSL.
Puoi controllare se le porte configurate sono aperte con il comando telnet
telnet your_server_ip 80
telnet your_server_ip 443
Otterrai un output come di seguito se le tue porte sono aperte
e2e@compaqlaptop:~$ telnet xx.xx.xx.xx 80
Sto provando xx.xx.xx.xx…
Connesso a xx.xx.xx.xx.
Il carattere di escape è '^]'.
Puoi anche verificare se la tua app/server Web è in grado di connettersi alla porta del database sul back-end. Il server MySQL per impostazione predefinita viene eseguito sulla porta 3306
telnet your_database_server_ip 3306
Se le tue porte web o database non sono accessibili, dovresti guardare la configurazione del tuo firewall. Potrebbe essere necessario aprire rispettivamente la porta 80, la porta 443 o la porta 3306.
Fase 9:verifica dell'impostazione DNS
Devi anche assicurarti che il tuo dominio sia puntato correttamente all'IP del server. Se puoi accedere al sito con l'IP e non con il tuo nome di dominio, potresti dover dare un'occhiata alle tue impostazioni DNS.
Puoi verificare se il tuo sito è indirizzato all'IP corretto con scava sotto comando
dig A example.com +short
Otterrai l'output come di seguito
e2e@compaqlaptop:~$ dig A example.com +short
xx.xx.xx.xx
e2e@compaqlaptop:~$
A parte questo, controlla i file dell'host virtuale Apache oi file di blocco del server Nginx per assicurarti che siano configurati per rispondere alle richieste per il tuo dominio.
Conclusione
Ci auguriamo che i suggerimenti per la risoluzione dei problemi sopra menzionati ti abbiano aiutato a rintracciare e risolvere alcuni dei problemi comuni che gli amministratori devono affrontare quando cercano di far funzionare i loro siti. Se riscontri problemi con i passaggi sopra menzionati, sentiti libero di discuterne nei commenti.