GNU/Linux >> Znalost Linux >  >> Linux

Základní řešení problémů s Nginx

Základní odstraňování problémů s Nginx

Tento článek ukazuje některé základní odstraňování problémů pro Nginx, jeden z nejpopulárnějších HTTP serverů. Účelem je opravit některé z nejčastějších chyb, které se mohou vyskytovat ve vaší konfiguraci Nginx.

Vyhledat syntaktické chyby nebo varování v konfiguraci

Pomocí jednoduchého příkazu můžete ověřit stav konfiguračního souboru Nginx:$ sudo systemctl config nginx Výstup ukáže, zda je konfigurační soubor správný, nebo pokud ne, zobrazí soubor a řádek, kde je problém.

$ sudo systemctl config nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl config nginx
"worker_connections" directive is not allowed here in /etc/nginx/nginx.conf:12
nginx: configuration file /etc/nginx/nginx.conf test failed

V případě, že ve svém systému nemáte servisní příkaz k dispozici, můžete se rozhodnout použít -t Parametr Nginx, který také otestuje správnou syntaxi konfiguračního souboru a poté se pokusí otevřít soubory, na které se v konfiguraci odkazuje.$ sudo nginx -t

Zkontrolujte, zda je spuštěn Nginx

Chcete-li zkontrolovat stav služby Nginx, můžete použít následující příkaz:$ sudo systemctl status nginx K ověření stavu služby můžete také použít obecné příkazy:$ sudo /etc/init.d/nginx status

Ověřte, zda jsou porty otevřené a služba naslouchá

Ověřte, že máte otevřené potřebné porty, a pro ověření, že služba Nginx přes ně naslouchá, můžete použít lsof příkaz, ideálně na výchozích portech 80 a 443.

$ sudo lsof -i :80 -s TCP:LISTEN
nginx   1305 nginx    6u  IPv4 1613873      0t0  TCP *:http (LISTEN)
nginx   1305 nginx    7u  IPv6 1613874      0t0  TCP *:http (LISTEN)
nginx   1306 nginx    6u  IPv4 1613873      0t0  TCP *:http (LISTEN)
nginx   1306 nginx    7u  IPv6 1613874      0t0  TCP *:http (LISTEN)

Zkontrolujte, zda Nginx zpracovává požadavky

Pokud Nginx skutečně naslouchá příslušným portům, dalším krokem je zkontrolovat, zda zpracovává požadavky, což lze provést pomocí curl pomocí IP, URL nebo localhost, pokud vaše nastavení naslouchá na localhost:

$ curl -i http://127.0.0.1/nginx_status
HTTP/1.1 200 OK
Server: nginx/1.11.1
Date: Wed, 08 Aug 2021 11:36:43 GMT
Content-Type: text/plain
Content-Length: 97
Connection: keep-alive

Active connections: 1
server accepts handled requests
3 3 3
Reading: 0 Writing: 1 Waiting: 0

Zkontrolujte protokoly

Zkontrolujte poslední protokoly služby Nginx.$ sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log

Kontrola oprávnění

Ujistěte se, že Nginx má příslušná oprávnění pro přístup k potřebným souborům.

$ namei -om /usr/share/nginx/html/index.html
f: /usr/share/nginx/html/index.html
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root share
drwxr-xr-x root root nginx
drwxr-xr-x root root html
-rw-r--r-- root root index.html

Znovu načtěte službu

V případě, že jste v konfiguračním souboru provedli změny, které nebyly použity, můžete službu znovu načíst, spustit nové procesy Nginx a jemně vypnout staré pracovníky, abyste se vyhnuli rychlému a agresivnímu vypnutí.$ sudo service nginx reload kód> Pro rychlé vypnutí, které nečeká na ukončení procesů, můžete restartovat Nginx.$ sudo service nginx restart

Povolit režim ladění

V konfiguračním souboru (obvykle /etc/nginx/nginx.conf ) změnit úroveň protokolu pro error_log směrnice:

server {
# stuff
error_log /var/logs/nginx/error.log debug;
# stuff
}

Můžete ladit pravidla přepisu, abyste viděli výsledky zpracování v protokolu chyb:

server {
# stuff
error_log /var/logs/nginx/error.log notice;
rewrite_log on;
# stuff
}

Ověřte překlad DNS

Pravidla na /etc/hosts mají přednost před překlady DNS. DNS záznamy můžete ověřit pomocí:$ host -t A website.com Můžete také zkontrolovat úplné rozlišení DNS:$ dig +trace website.com

Závěry

Toto jsou některé základní kroky pro odstraňování problémů s některými z nejčastějších chyb s Nginx. Pokud tyto kroky váš problém nevyřeší, můžete se také spolehnout na dokumentaci a využít tak velké popularity Nginx.


Linux
  1. Odstraňování problémů s hardwarem v Linuxu

  2. nginx - 413 entita požadavku je příliš velká

  3. Nainstalujte Nginx na Fedoru

  1. Základní konfigurace PHP 7 a Nginx na Ubuntu 16.04 Linux

  2. Jak používat Nginx k přesměrování

  3. Nainstalujte Nginx na Ubuntu

  1. Jak zakázat ETag v NGINX

  2. Odstraňování problémů s úlohami Cron

  3. Řešení základních problémů s fondem aplikací