Bei der Konfiguration von nginx.conf treten immer Probleme auf. Hier sind einige häufige Probleme und ihre Lösung. 1. Relatives Pfadproblem Beispielsweise die Standorteinstellung in der Konfigurationsdatei Standort ~ .php${ Stamm-HTML } Das von root im Speicherort gezeigte HTML ist ein relativer Pfad, der relativ zum Pfad dieser Konfigurationsdatei ist. Angenommen, der Speicherort dieser Konfigurationsdatei ist /etc/nginx/conf.d, dann ist der absolute Pfad dieses HTML /etc/nginx/conf.d/html. Um unnötigen Ärger zu vermeiden, ist es daher am besten, beim Konfigurieren des Stammpfads einen absoluten Pfad zu verwenden. 2. Pfadvererbungsproblem 2.1 Fall 1 Wenn der Server erklärt: root /usr/share; Und die Standortangabe: Standort /{ root /usr/html/www } Zu diesem Zeitpunkt wird zuerst der Pfad im Standort verwendet. 2.2 Der zweite Fall Wenn der Stammpfad nicht im Speicherort deklariert ist: Standort /App { } Standardmäßig wird der von root außerhalb des Standorts deklarierte Pfad verwendet. 3. Startseiteneinstellungen Wenn wir in der Serverdeklaration deklarieren: Wenn wir dann / anfordern, wird es intern zu url/index.php oder url/index.html umgeleitet. Detaillierte Erklärung der Datei nginx.conf Auf der offiziellen Website wird die Konfiguration jedes Modulparameters erläutert: Nginx Chinese Documentation ## Ereignisse, http, Server, Standort, Upstream usw. im Codeblock sind alles Blockkonfigurationselemente## ##Blockkonfigurationselemente können verschachtelt werden. Der innere Block erbt direkt den äußeren Block. Beispielsweise basiert jede Konfiguration im Serverblock auf der vorhandenen Konfiguration im HTTP-Block. ##Benutzer und Benutzergruppen, die den Nginx-Arbeitsprozess ausführen#Syntax: Benutzer Benutzername[Gruppenname] Standard: Benutzer niemand niemand Mit #user werden der Benutzer und die Benutzergruppe festgelegt, unter denen der gegabelte Arbeitsprozess nach dem Start des Masterprozesses ausgeführt wird. Wenn „Benutzername“ festgelegt ist, ist der Benutzergruppenname mit dem Benutzernamen identisch. #Wenn der Benutzer beim Ausführen des Konfigurationsbefehls die Parameter --user=usergroup und --group=groupname verwendet, verwendet nginx.conf den in den Parametern angegebenen Benutzer und die angegebene Benutzergruppe. #Benutzer niemand; ##Anzahl der Nginx-Arbeitsprozesse: Die Anzahl wirkt sich direkt auf die Leistung aus. #Jeder Arbeitsprozess ist ein Single-Thread-Prozess und ruft verschiedene Module auf, um verschiedene Funktionen zu implementieren. Wenn diese Module keine blockierenden Aufrufe haben, sollte die Anzahl der Prozesse entsprechend der Anzahl der CPU-Kerne konfiguriert werden. Wenn hingegen blockierende Aufrufe auftreten können, müssen mehr Arbeitsprozesse konfiguriert werden. Arbeiterprozesse 1; ##SSL-Hardwarebeschleunigung. #Benutzer können den von OpenSSL bereitgestellten Befehl verwenden, um zu überprüfen, ob ein SSL-Hardwarebeschleunigungsgerät vorhanden ist: openssl engine -t #ssl_engine-Gerät; ##Dämon. Es handelt sich um einen Prozess, der im Hintergrund ausgeführt werden darf, ohne das Terminal zu verlassen. Die Trennung vom Terminal verhindert, dass die Informationen während der Prozessausführung auf irgendeinem Terminal angezeigt werden. Auf diese Weise wird der Vorgang nicht durch vom Terminal generierte Informationen unterbrochen. ## ##Schalten Sie den Daemon-Modus aus. Dieser Modus wird bereitgestellt, um das Verfolgen und Debuggen von nginx zu erleichtern. Schließlich ist das Mühsamste beim Debuggen eines Prozesses mit gdb, wie man den gegabelten untergeordneten Prozess weiterhin verfolgen kann. ## ##Wenn der Master_Proccess-Modus ausgeschaltet ist, wird der Worker-Prozess nicht geforkt, um Anfragen zu verarbeiten, sondern der Master-Prozess selbst wird verwendet, um Anfragen zu verarbeiten. #Daemon aus; #Überprüfen Sie, ob Nginx als Daemon-Prozess ausgeführt wird. Die Standardeinstellung ist „Ein“. #master_process off; #Ob im Master/Worker-Modus gearbeitet werden soll. Die Standardeinstellung ist „on“ ##Fehlerprotokolleinstellungen# #Syntax: error_log /Pfad/Dateiebene; #Standard: error_log / log/error.log Fehler; #Wenn der Wert von Pfad/Datei /dev/null ist, wird kein Protokoll ausgegeben. Dies ist auch die einzige Möglichkeit, das Fehlerprotokoll zu schließen. #Der Wertebereich der Ebene ist Debug, Info, Notice, Warn, Error, Crit, Alert, Emerge und die Ebenen steigen von links nach rechts an. #Wenn der Pegel ein Fehler ist, werden Protokolle der Fehler-, Krit-, Alarm- und Emerge-Pegel ausgegeben. Diejenigen, die größer oder gleich diesem Level sind, werden ausgegeben, und diejenigen, die kleiner als dieses Level sind, werden nicht ausgegeben. #Wenn die eingestellte Protokollebene „Debug“ ist, werden alle Protokolle ausgegeben. Die Datenmenge wird sehr groß sein. Sie müssen im Voraus sicherstellen, dass auf der Festplatte, auf der sich /path/file befindet, genügend Speicherplatz vorhanden ist. Um die Ebene auf Debuggen einzustellen, müssen Sie während der Konfiguration die Konfigurationsoption --with-debug hinzufügen. #error_log Protokolle/Fehler.log; #error_log Protokolle/error.log Hinweis; #error_log Protokolle/error.log-Info; ##Pfad der PID-Datei (Speicherpfad der PID-Datei der Masterprozess-ID) #pid logs/nginx.pid; Ereignisse { #Gibt nur Protokolle auf Debug-Ebene für den angegebenen Client aus: Syntax: debug_connection[IP|CIDR] #Dieses Einstellungselement gehört eigentlich zur Ereigniskonfiguration und muss daher in Ereignisse{……} eingefügt werden, damit es wirksam wird. Der Wert kann eine IP-Adresse oder eine CIRD-Adresse sein. #debug_connection 10.224.66.14; #oder debug_connection 10.224.57.0/24 #Auf diese Weise geben nur Anfragen von den oben genannten IP-Adressen Protokolle auf Debug-Ebene aus, und andere Anfragen verwenden weiterhin die in error_log konfigurierte Protokollebene. #Hinweis: Stellen Sie vor der Verwendung von debug_connection sicher, dass der Parameter --with-debug beim Ausführen von configure hinzugefügt wurde, da er sonst nicht wirksam wird. Arbeiterverbindungen 1024; } ##Core Dump (Coredump): Wenn in einem Linux-System ein Prozess aufgrund eines Fehlers oder eines Signals beendet wird, schreibt das System den Speicherinhalt (Core Image) der Prozessausführung ausschließlich zu Debugzwecken in eine Datei (Core File). Dies wird als Core Dump (Coredump) bezeichnet. http { ##Syntax zum Einbetten anderer Konfigurationsdateien: include /Pfad/Datei #Der Parameter kann entweder ein absoluter oder ein relativer Pfad sein (relativ zum Nginx-Konfigurationsverzeichnis, d. h. dem Verzeichnis, in dem sich nginx.conf befindet). mime.types einschließen; Standardtyp Anwendung/Oktett-Stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log Protokolle/access.log Haupt; sendfile an; #tcp_nopush ein; #keepalive_timeout 0; KeepAlive-Timeout 65; #gzip ein; Server { ##Abhörport#Syntax: Abhöradresse:Port [Standard (veraltet in 0.8.21) | Standardserver | [Backlog=Nummer | RCVBUF=Größe | sndbuf=Größe | Accept_Filter=Filter | verzögert | Binden | SSL]] #default_server: Wenn dieser Parameter nicht festgelegt ist, wird der erste in nginx.conf gefundene Serverblock als Standard-Serverblock-Listen 8080 verwendet; #Hostname: Es können mehrere Hostnamen folgen. Bei der Verarbeitung einer HTTP-Anforderung nimmt nginx den Host im Header heraus und vergleicht ihn mit dem Servernamen in jedem Server, um zu entscheiden, welcher Server die Anforderung verarbeiten wird. Es ist möglich, dass ein Host in mehreren Serverblöcken mit dem Servernamen übereinstimmt. In diesem Fall wird der zu verarbeitende Serverblock basierend auf der Übereinstimmungspriorität ausgewählt. Die passende Priorität von Servername und Host wird am Ende dieses Artikels angezeigt. Servername localhost; #Zeichensatz koi8-r; #access_log Protokolle/Host.access.log Haupt; #Standort / { #Wurzel-HTML; # index.html index.htm; #} ##Standort Syntax: Standort [=|~|~*|^~] /uri/ { ... } # Beispiele zur Verwendung von Standorten finden Sie am Ende des Artikels. #Hinweis: Standorte werden sortiert. Wenn eine Anfrage auf mehrere Standorte zutrifft, wird die Anfrage tatsächlich vom ersten Standort bearbeitet. Standort / { Proxy-Passwort http://192.168.1.60; } #Fehlerseite 404 /404.html; # Server-Fehlerseiten auf die statische Seite /50x.html umleiten # Fehlerseite 500 502 503 504 /50x.html; Standort = /50x.html { Stamm-HTML; } # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht # #Standort ~ \.php$ { # Proxy-Passwort http://127.0.0.1; #} # Übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht. # #Standort ~ \.php$ { #Wurzel-HTML; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #fastcgi_params einschließen; #} # Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokumentenstammverzeichnis # stimmt mit nginx überein # #Standort ~ /\.ht { # alles ablehnen; #} } # ein weiterer virtueller Host mit einer Mischung aus IP-, Namens- und Port-basierter Konfiguration # #server { # hören Sie 8000; # hören Sie irgendein Name:8080; # Servername irgendein Name Alias anderer.Alias; # Standort / { #Wurzel-HTML; # index.html index.htm; # } #} # HTTPS-Server # #server { # 443 SSL abhören; # Servername localhost; # SSL-Zertifikat cert.pem; # SSL-Zertifikatsschlüssel cert.key; # ssl_session_cache geteilt:SSL:1m; #ssl_session_timeout 5m; # ssl_ciphers HOCH:!aNULL:!MD5; # ssl_prefer_server_ciphers ein; # Standort / { #Wurzel-HTML; # index.html index.htm; # } #} } Dies ist das Ende dieses Artikels mit der detaillierten Erklärung des Problems mit der Einstellung des Stammverzeichnisses in nginx.conf. Weitere relevante Inhalte zum Stammverzeichnis von nginx.conf finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Gründe und Lösungen für die Auswahl des falschen Index durch MySQL
>>: Wenden Sie „Provide“ und „Inject“ an, um die Vue-Seitenmethode zu aktualisieren
Eine interessante Entdeckung: Es gibt eine Tabell...
In diesem Artikel finden Sie das Installations-Tu...
Ich habe vor Kurzem meine persönliche Website neu...
In diesem Artikelbeispiel wird der spezifische Co...
Während des Entwicklungs- und Debugging-Prozesses...
--1. Erstellen Sie eine neue Gruppe und einen neu...
Fokusbilder sind eine Möglichkeit, Inhalte zu präs...
Dieser Artikel stellt hauptsächlich die Lösung fü...
Das 10-tägige Tutorial verwendet eine äußerst ver...
Dieser Artikel stellt einige häufig verwendete Fu...
1. Neuen Benutzer anlegen: 1. Führen Sie eine SQL...
Inhaltsverzeichnis 1. Übersicht 1. Grundsatz 2. U...
HTML-Seitensprung: Fenster.öffnen(URL, "&quo...
docker-compose-monitor.yml Version: '2' N...
Inhaltsverzeichnis Vorwort: 1. Einführung in die ...