GNU/Linux >> Linux Esercitazione >  >> Linux

Problemi e soluzioni comuni del server

Uno degli usi più comuni del server online è quello di ospitare siti web. Ciò è reso possibile dal software che serve il contenuto http tra le altre cose. In questo post spiegherò alcuni trucchi per rilevare e riparare i problemi nei sistemi di servizi web GNU/Linux. Per semplicità ci concentreremo su apache che è più comunemente usato.

Solitamente la prima novità che abbiamo quando ci sono problemi sul web server è che i browser non sono in grado di visualizzare i contenuti. Prima di entrare nel server conviene verificare se il problema è DNS e perchè il nome a dominio non si risolve all'IP del nostro web server. Questo può essere visto utilizzando applicazioni come ping, host, nslookup dig, ecc. a seconda di ciò che abbiamo a portata di mano.
Se siamo sicuri che il dominio DNS funzioni e punti al servizio web ip, noi amministratori dobbiamo accedi a questo e prova a capire e risolvere qualunque sia il problema.

Prima di entrare nel rag, come prima informazione diciamo che il protocollo http funziona sulla porta 80 del nostro server. Questo è un fatto importante perché sapendo che possiamo facilmente ottenere dati sui processi in esecuzione.
Una volta dentro, la prima cosa che facciamo è usare il comando "netstat" che mostra un elenco di porte e connessioni stabilite sul nostro server:

Come mostrato, usando insieme al comando "grep", per filtrare per "LISTEN" e "80" ci mostra se c'è un processo in ascolto sulla porta 80 e utilizza il servizio "httpd". Se dovessi rimuovere il "| grep LISTEN” mostriamo anche le connessioni che sono ancora attive in quella porta, tra queste possiamo trovare le connessioni stabilite, in sospeso o chiuse.

Inoltre, abbiamo anche un comando chiamato "lsof" che può mostrarci ancora più informazioni sugli utenti e sul numero di processi in esecuzione. Questo comando mostra informazioni sui file aperti sul sistema Linux Linux poiché tutto funziona tramite file per noi è molto utile. In questo caso dobbiamo dire che guarda i file aperti relativi alla porta 80 e lo faremo specificando "-i 80" all'interno del sistema essendo utenti amministratori:

Questo sopra è un normale output di un server in cui nessuno sta guardando le pagine ospitate. Qui possiamo vedere come l'utente che esegue il processo sia "apache" che c'è un padre e 6 figli che elaborano processi in attesa che le richieste arrivino per servire il contenuto. Se qualcuno cerca una pagina in cui appare più "ASCOLTA", ora viene visualizzato, indicando la fonte della connessione tra le altre cose.

Se il nostro server non vede processi in esecuzione sulla porta 80 con nessuno dei comandi precedenti, è indicativo che il servizio web non funziona come dovrebbe e quindi dovremo riavviarlo. Questo dipende da quale distribuzione Linux la useremo usando un nome o altre distribuzioni basate su Redhat e Centos sono fatte con "httpd" e quelle basate su Debian come Ubuntu, con "apache2"

Nel nostro caso utilizziamo httpd perché è un Centos e poiché il server Web è avviato correttamente, quindi controlleremo solo ora se ci sono processi in esecuzione e proveremo a visualizzare nuovamente i siti nel browser.

Nel caso unbootable potrebbe mostrarci un messaggio di errore che verrebbe analizzato in dettaglio per determinare esattamente cosa succede, poiché ci sono molte possibilità. Dovremmo anche guardare il registro degli errori per vedere se hai lasciato un messaggio di indicazione. Questo può essere fatto con il comando cat o tail o qualsiasi editor di testo della console, come vim o nano o emacs.

Un'applicazione molto utile di quanto sopra è "tail" poiché con la "-f" dietro ci consente di vedere i log in tempo reale, ad esempio:

tail -f /var/log/httpd/error_log

Se lo lasciamo in esecuzione su una console e l'altro proviamo ad avviare il servizio, oppure accediamo al browser possiamo vedere errori in tempo reale, il che sarà molto utile.
A volte il server web sembra essere avviato e funzionare normalmente con i suoi processi di ascolto, ma comunque i siti Web non funzionano correttamente e non mostrano alcun contenuto nel browser.
In questi casi per vedere cosa succede la priorità come indicato sopra è guardare il log degli errori, che normalmente viene visualizzato informazioni dettagliate sui problemi che impediscono il funzionamento. Dopo aver visualizzato l'errore, a meno che non sappiamo che lo è, è normale utilizzare un motore di ricerca come Google per informazioni su questo errore e in qualche modo per risolverlo. Se non viene ancora visualizzato alcun messaggio, è necessario arrestare tutte le istanze del server Web e avviarlo in modalità debug:

httpd -e DEBUG

Con questo se dovessimo essere in grado di vedere qualsiasi errore interno per aiutare nella sua risoluzione. In ogni caso se dopo aver seguito tutti questi passaggi non riesci a far funzionare il tuo web server ti consigliamo di rivolgerti a professionisti in grado di risolvere il problema in modo rapido ed efficiente.
Infine metteremo un elenco dei più comuni errori che possiamo trovare il tempo di sollevare un servizio web caduto e alcune idee su come risolverli. Errori che possono andare nel registro quando il problema è la configurazione web o il codice che lasciamo per un altro ingresso posteriore.

1. "make_sock:impossibile eseguire il binding all'indirizzo 0.0.0.0:80 nessun socket di ascolto disponibile"
Se questo errore viene visualizzato all'avvio del servizio Web probabilmente è già operativo poiché c'è qualcosa in ascolto sulla porta 80. Se abbiamo problemi, prova a fermarlo prima con un "service httpd/apache2 stop", ma ancora datare lo stesso errore dovrebbe terminare il processo che sta occupando la porta 80, portando il numero pid prima descritto sopra con il comando lsof o netstat e usando il "kill - s 9” comando pid “per forzarne l'arresto.

2. "Nessun file o directory del genere:apache2:Impossibile aprire il file di registro degli errori /var/log/apache2/error.log"
Con questo errore il server Web indica che l'avvio non può scrivere nel registro assegnato in la sua configurazione, o perché la cartella non esiste, perché non può creare il file o perché il file esiste ma i permessi/utenti non sono corretti. Per risolverlo dobbiamo analizzare tutti questi fattori e consentire all'utente del server web di scrivere su quel file e riavviare il processo.

3. "Avvio di httpd:errore di sintassi sulla riga xxx di /etc/httpd/conf/httpd.conf:DocumentRoot deve essere una directory"
A volte l'errore ci reindirizza a un servizio Web di configurazione del punto esatto. In tal caso verificheremo il file di configurazione in questione e analizzeremo quello che potrebbe non riuscire esattamente sulla riga indicata. In questo caso il “DocumentRoot” che è la radice del web server non era accessibile da questo, essendo simile alla soluzione del punto 2.


Linux
  1. Creazione e gestione delle istantanee

  2. Domande frequenti su disco di sistema e disco dati

  3. Nozioni di base su Vhost e blocchi server

  4. Che cos'è un errore interno del server 500

  5. Risoluzione dei problemi comuni di NFS in Linux

Tunneling e proxy SSH

Client e server NIS

Problemi comuni di Windows:attivazione del server di gestione delle chiavi

Fondamenti di virtualizzazione VMware – VMware Server e VMware ESXi

I 20 migliori software e soluzioni per server di posta Linux

Debug di iptables e insidie ​​comuni del firewall?