Detaillierter Prozessbericht der Nginx-Installation und -Konfiguration

Detaillierter Prozessbericht der Nginx-Installation und -Konfiguration

1 Einführung in nginx

1 Was ist nginx

Nginx ist ein leistungsstarker HTTP-Server/Reverse-Proxy-Server und E-Mail-Proxy-Server (IMAP/POP3).

Der offizielle Test der vom russischen Programmierer Igor Sysoev entwickelten Version zeigt, dass Nginx 50.000 gleichzeitige Verbindungen unterstützen kann.

Darüber hinaus ist der Verbrauch von Ressourcen wie CPU und Speicher sehr gering und der Betrieb sehr stabil.

2 Anwendungsszenarien

1. HTTP-Server. Nginx ist ein HTTP-Dienst, der eigenständig HTTP-Dienste bereitstellen kann. Kann als statischer Webserver verwendet werden.

2. Virtueller Host. Es ist möglich, mehrere Websites auf einem Server zu virtualisieren. Beispielsweise ein virtueller Host, der von einer persönlichen Website verwendet wird.

3. Reverse-Proxy, Lastausgleich. Wenn die Anzahl der Besuche einer Website ein bestimmtes Niveau erreicht, kann ein einzelner Server die Anforderungen des Benutzers nicht mehr erfüllen.

Wenn Sie mehrere Servercluster verwenden müssen, können Sie nginx als Reverseproxy verwenden. Und mehrere Server können die Last gleichmäßig verteilen,

Es wird keine Situation geben, in der ein Server wegen hoher Auslastung im Leerlauf ist.

2 Nginx-Installation

1 Herunterladen

Offizielle Website: http://nginx.org/en/download.html

Die offizielle Website bietet drei Versionen:

Die offizielle Nginx-Website bietet drei Arten von Versionen

Mainline-Version: Mainline ist die Version, an der Nginx derzeit arbeitet, und man kann sagen, dass es sich um eine Entwicklungsversion handelt.

Stabile Version: die neueste stabile Version, die für die Produktionsumgebung empfohlene Version

Legacy-Versionen: Stabile Versionen von Legacy-Versionen

Wir laden die stabile Version unten herunter

Die verwendete Version ist 1.14.0.tar.gz.

2 Anforderungen an die Installationsumgebung

Die folgende Umgebung muss entsprechend Ihrer Systemsituation bestimmt werden. Wenn Sie die Umgebung nicht haben, installieren Sie einfach Folgendes.

1. Sie müssen eine gcc-Umgebung installieren

# yum installiere gcc-c++

2. Entwicklungskits von Drittanbietern

1 PERE

PCRE (Perl Compatible Regular Expressions) ist eine Perl-Bibliothek, die eine Perl-kompatible Bibliothek für reguläre Ausdrücke enthält.

Das http-Modul von nginx verwendet pcre zum Parsen regulärer Ausdrücke, daher muss die pcre-Bibliothek unter Linux installiert werden.

Hinweis: pcre-devel ist eine sekundäre Entwicklungsbibliothek, die mit pcre entwickelt wurde. nginx erfordert auch diese Bibliothek.

# yum install -y pcre pcre-devel

2 zlib

Die zlib-Bibliothek bietet zahlreiche Komprimierungs- und Dekomprimierungsmethoden. Nginx verwendet zlib, um den Inhalt des HTTP-Pakets zu gzippen, daher muss die zlib-Bibliothek unter Linux installiert werden.

# yum install -y zlib zlib-devel

3 öffnet sich

OpenSSL ist eine leistungsstarke kryptografische Bibliothek auf Secure Socket Layer, die wichtige kryptografische Algorithmen, häufig verwendete Funktionen zur Verwaltung der Schlüssel- und Zertifikatskapselung sowie SSL-Protokolle enthält.

Und bieten vielfältige Einsatzmöglichkeiten für Tests oder andere Zwecke.

Nginx unterstützt nicht nur das HTTP-Protokoll, sondern auch HTTPS (d. h. die Übertragung von HTTP über das SSL-Protokoll). Daher müssen Sie die OpenSSL-Bibliothek unter Linux installieren.

# yum -y installiere pcre pcre-devel zlib zlib-devel openssl openssl-devel

3 Nginx-Installationsprozess

1 Laden Sie das Nginx-Quellpaket auf das Linux-System hoch

2 Entpacken nach /usr/local

# tar -xvf nginx-1.14.0.tar.gz -C /usr/local

3 Verwenden Sie den Befehl cofigure, um eine makeFile-Datei zu erstellen

Achten Sie beim Ausführen des folgenden Befehls darauf, das Verzeichnis nginx-1.14.0 aufzurufen.

./konfigurieren \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--mit-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \--mit-http_stub_status_module \--mit-http_ssl_module \--mit-file-aio \--mit-http_realip_module

Wenn keine MakeFile-Datei vorhanden ist, wird beim Kompilieren ein Fehler gemeldet

\ bedeutet, dass der Befehl noch nicht eingegeben wurde und eine neue Zeile darstellt.

--prefix=/usr/local/nginx bedeutet, dass die Software unter /usr/local/nginx installiert ist.

Beim Ausführen von „make install“ ist es nicht erforderlich, den Installationspfad anzugeben.

Überprüfen Sie nach Abschluss der Ausführung, ob sich bereits eine Makefile-Datei im Verzeichnis befindet

Hinweis: Geben Sie vor dem Starten von nginx das temporäre Dateiverzeichnis als /var/temp/nginx an.

Sie müssen temporäre und nginx-Verzeichnisse unter /var erstellen

4 Verzeichnis /var/temp/nginx/ erstellen

# mkdir /var/temp/nginx -p

-p bedeutet Kaskadenerstellung

5 Geben Sie nginx-1.14.0 ein und führen Sie den Befehl make zum Kompilieren aus

6 Geben Sie nginx-1.14.0 ein und führen Sie den Befehl make install aus, um

Ein erneutes Ausführen des Installationspfades ist hier nicht nötig, dieser wurde bereits beim Erstellen des Makefiles angegeben.

7 Geben Sie den Installationsort /usr/local/nginx ein, um die Verzeichnisstruktur anzuzeigen

Darunter ist HTML die HTML-Datei der Homepage. conf enthält Konfigurationsdateien. In sbin sind nur ausführbare Dateien enthalten.

3 Starten Sie nginx

Wechseln Sie in das sbin-Verzeichnis und führen Sie den Befehl ./nginx aus.

[root@admin sbin]# ./nginx

4 Überprüfen Sie, ob nginx gestartet ist

[root@admin sbin]# ps -aux | grep nginx

Der Befehl ps wird verwendet, um den Prozessstatus des aktuellen Systems zu melden.

-a: Zeigt Programme an, die in allen Terminals ausgeführt werden, mit Ausnahme des Stage-Job-Leaders.

a: Alle Programme unter dem aktuellen Terminal anzeigen, einschließlich der Programme anderer Benutzer.

u: Programmstatus im benutzerorientierten Format anzeigen.

x: Alle Programme anzeigen, unabhängig vom Terminal.

5. Nginx herunterfahren

[root@admin sbin]# ./nginx -s stop

oder

[root@admin sbin]# ./nginx -s beenden

6 Starten Sie nginx neu

Erst herunterfahren, dann hochfahren

7 Aktualisieren Sie die Konfigurationsdatei

[root@admin sbin]# ./nginx -s neu laden

8. Deaktivieren Sie die Firewall und aktivieren Sie den Fernzugriff

Zuerst müssen Sie die Firewall ausschalten: Der Standardport ist 80

Methode 1: Port 80 dauerhaft öffnen

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables speichern

Methode 2: Deaktivieren Sie vorübergehend die Systemfirewall

# Dienst iptables stoppen

Methode 3: Deaktivieren Sie die Firewall dauerhaft, indem Sie die Konfiguration ändern und booten, ohne die Firewall zu starten

# chkconfig iptables aus

Spezial: Für Alibaba Cloud

Sicherheitsgruppenregeln müssen hinzugefügt werden

9 Zugriff auf nginx

10. Virtuellen Host konfigurieren

Es dient zum Starten mehrerer Websites auf einem Server.

So unterscheiden Sie verschiedene Websites: Es gibt hauptsächlich zwei Möglichkeiten

Methode 1: Verschiedene Ports

Methode 2: Verschiedene Domänennamen

11 Unterscheiden verschiedener Hosts anhand des Ports

Speicherort der Nginx-Konfigurationsdatei: /usr/local/nginx/conf/nginx.conf

Der Inhalt der ursprünglichen Konfigurationsdatei ist wie folgt:

Wir können mehrere Server konfigurieren, um mehrere virtuelle Maschinen zu konfigurieren

Der folgende Test: Kopieren Sie das ursprüngliche HTML-Verzeichnis und benennen Sie es in html-81

Ändern Sie die Datei index.html unten, um die Unterscheidung zu erleichtern

[root@admin nginx]# vim html-81/index.html

Nachdem die Änderung abgeschlossen ist, aktualisieren Sie die folgenden Konfigurationsdateien

[root@admin sbin]# ./nginx -s neu laden

Besuchen Sie dann 192.168.204.131:80 bzw. 192.168.204.131:81

12 Mehrere Domänennamen unterscheiden virtuelle Hosts

1. Was ist ein Domänenname?

Der Domänenname ist die Website: www.baidu.com ist der Domänenname

Der DNS-Domänennamenauflösungsserver löst Domänennamen in IP-Adressen auf. Gespeichert wird lediglich die Abbildungsbeziehung zwischen Domänenname und IP-Adresse.

Domänenname der ersten Ebene: baidu.com

Domänenname der zweiten Ebene: www.baidu.com

Domänenname der dritten Ebene: image.baidu.com

Ein Domänenname entspricht einer IP-Adresse, und eine IP-Adresse kann an mehrere Domänennamen gebunden sein.

Sie müssen lediglich einen Domänennamen der ersten Ebene kaufen und können die Domänennamen der zweiten und dritten Ebene beliebig definieren.

Wir können den lokalen Test abschließen, indem wir die Host-Konfigurationsdatei ändern:

Speicherort der Hosts-Datei: C:\Windows\System32\drivers\etc

Sie können die Zuordnungsbeziehung zwischen Domänennamen und IP manuell konfigurieren. Wenn die entsprechende Beziehung zwischen Domänennamen und IP in der Hosts-Datei konfiguriert ist, ist der Umweg über den DNS-Domänennamenauflösungsserver nicht erforderlich.

Denn wenn Sie einen Domänennamen erhalten, suchen Sie ihn zunächst in der Hosts-Datei. Wenn er nicht gefunden wird, suchen Sie ihn im DNS-Domänennamen-Resolver.

2 Nginx-Konfiguration

3 Testen

1 Ändern Sie die Konfigurationsdatei des lokalen Hosts

2 Kopieren Sie das HTML-Verzeichnis und benennen Sie es in html-taobao bzw. html-baidu um

3 Ändern Sie die Dateien index.html in html-baidu und html-taobao, um die Unterscheidung zu erleichtern

4 Aktualisieren Sie die Konfigurationsdatei

[root@admin sbin]# ./nginx -s neu laden

5 Besuchen Sie dann mit dem Browser: www.taobao.com und www.baidu.com

13 Weiterleitungsproxy

14 Reverse-Proxy

Der Reverse-Proxy-Server bestimmt, welcher Server den Dienst bereitstellt

15 nginx implementiert Reverse-Proxy

Die beiden Domänennamen verweisen auf denselben Nginx-Server, und wenn Benutzer unterschiedliche Domänennamen besuchen, werden unterschiedliche Webseiteninhalte angezeigt.

Die beiden Domänennamen sind www.baidu.com und www.taobao.com

Der Nginx-Proxyserver verwendet die virtuelle Maschine 192.168.204.131

Schritt 1: Installieren Sie zwei Tomcat-Server und führen Sie sie auf den Ports 8080 bzw. 8081 aus.

Schritt 2: Starten Sie zwei Tomcats.

Schritt 3: Reverse-Proxy-Server-Konfiguration

Schritt 4: nginx lädt die Konfigurationsdatei neu

Schritt 5: Konfigurieren des Domänennamens

Fügen Sie die Zuordnung zwischen Domänennamen und IP in der Hosts-Datei hinzu

192.168.204.131 www.baidu.com

192.168.204.131 www.taobao.com

16 Lastverteilung

Wird ein Dienst von mehreren Servern bereitgestellt, muss die Last zur Verarbeitung auf unterschiedliche Server verteilt werden, wozu ein Lastenausgleich erforderlich ist.

Das Servergewicht kann entsprechend der tatsächlichen Situation des Servers angepasst werden. Je höher die Gewichtung, desto mehr Anfragen werden zugewiesen, und je niedriger die Gewichtung, desto weniger Anfragen werden zugewiesen. Der Standardwert ist 1

17 Stellen Sie nginx so ein, dass es beim Booten automatisch gestartet wird (centos6.5)

Jedes Mal, wenn Sie den Nginx-Dienst starten, müssen Sie im Installationsverzeichnis zu /sbin gehen, was ziemlich mühsam ist.

Im Folgenden wird beschrieben, wie Sie nginx für den automatischen Start auf einem Linux-System (CentOS) einrichten.

1 Nginx-Dienst mit Skripten verwalten

Schritt 1: Erstellen Sie die nginx-Datei im Verzeichnis /etc/init.d/. Der Befehl lautet wie folgt:

# berühren Sie /etc/init.d/nginx

Schritt 2: Fügen Sie der erstellten Nginx-Datei den folgenden Inhalt hinzu

Führen Sie zuerst den Befehl aus:

# vim /etc/init.d/nginx

Fügen Sie dann den folgenden Inhalt hinzu und kopieren Sie ihn in die nginx-Konfigurationsdatei

#!/bin/sh
#
# nginx - dieses Skript startet und stoppt den nginx-Daemon
#
# chkconfig: -85 15
# Beschreibung: NGINX ist ein HTTP(S)-Server, HTTP(S) Reverse \
# Proxy und IMAP/POP3-Proxyserver
# Prozessname: nginx
# Konfiguration: /etc/nginx/nginx.conf
# Konfiguration: /etc/sysconfig/nginx
# PID-Datei: /var/run/nginx.pid
# Quellfunktionsbibliothek.
. /etc/rc.d/init.d/Funktionen
# Quellnetzwerkkonfiguration.
. /etc/sysconfig/netzwerk
# Überprüfen Sie, ob das Netzwerk aktiv ist.
[ "$NETWORKING" = "nein" ] && exit 0
nginx="/usr/sbin/nginx"
prog=$(Basisname $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
   # erforderliche Verzeichnisse erstellen
   Benutzer=`$nginx -V 2>&1 | grep "Argumente konfigurieren:" | sed 's/[^*]*--Benutzer=\([^ ]*\).*/\1/g' -`
   wenn [ -z "`grep $user /etc/passwd`" ]; dann
       useradd -M -s /bin/nologin $user
   fi
   Optionen=`$nginx -V 2>&1 | grep 'Argumente konfigurieren:'`
   für Opt-in $options; tun
       wenn [ `echo $opt | grep '.*-temp-path'` ]; dann
           Wert=`echo $opt | cut -d "=" -f 2`
           wenn [ ! -d "$wert" ]; dann
               # echo "erstellen" $value
               mkdir -p $Wert && chown -R $Benutzer $Wert
           fi
       fi
   Erledigt
}
Start() {
    [ -x $nginx ] || beenden 5
    [ -f $NGINX_CONF_FILE ] || beenden 6
    make_dirs
    echo -n $"$prog wird gestartet: "
    Daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    Echo
    [ $retval -eq 0 ] && touch $lockfile
    Rückgabewert $retval
}
stoppen() {
    echo -n $"$prog wird gestoppt: "
    killproc $prog -QUIT
    retval=$?
    Echo
    [ $retval -eq 0 ] && rm -f $lockfile
    Rückgabewert $retval
}
neu starten() {
    Konfigurationstest || return $?
    stoppen
    Schlaf 1
    Start
}
neu laden() {
    Konfigurationstest || return $?
    echo -n $"Lade $prog neu: "
    killproc $nginx -HUP
    RETVAL=$?
    Echo
}
force_reload() {
    Neustart
}
konfigurationtest() {
  $nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
    Status $prog
}
rh_status_q() {
    rh_status >/dev/null 2>&1
}
Fall "$1" in
    Start)
        rh_status_q und beenden 0
        1 Dollar
        ;;
    stoppen)
        rh_status_q || beenden 0
        1 Dollar
        ;;
    Neustart|Konfigurationstest)
        1 Dollar
        ;;
    neu laden
        rh_status_q || Ausgang 7
        1 Dollar
        ;;
    erzwungenes Neuladen
        erzwingen_neuladen
        ;;
    Status)
        rh_status
        ;;
    condrestart|versuchen Sie einen Neustart)
        rh_status_q || beenden 0
            ;;
    *)
        echo $"Verwendung: $0 {Start|Stopp|Status|Neustart|Condrestart|Neustartversuch|Neuladen|Neuladen erzwingen|Configtest}"
        Ausfahrt 2
esac

Die obige Skriptdatei wurde nicht von mir selbst geschrieben, sondern wird offiziell von nginx bereitgestellt.

Adresse: http://wiki.nginx.org/RedHatNginxInitScript

Hinweis: Wenn Sie die Installation von nginx angepasst haben, ändern Sie den Installationspfad und die Konfigurationsdateien entsprechend der tatsächlichen Situation.

Kopieren Sie den Code wie folgt:
nginx="/usr/sbin/nginx" Ändern Sie es in den Pfad Ihres Nginx-Ausführungsprogramms. Meins ist beispielsweise nginx="/usr/local/nginx/sbin/nginx"
Kopieren Sie den Code wie folgt:
NGINX_CONF_FILE="/etc/nginx/nginx.conf" Wechseln Sie zum Pfad Ihrer Konfigurationsdatei, zum Beispiel: NGINX_CONF_FILE="/usr/local/nginx/nginx.conf

Nachdem die Änderung abgeschlossen ist, speichern Sie die Skriptdatei und beenden Sie sie mit wq

Schritt 3: Berechtigungen für nginx-Dateien festlegen

# chmod a+x /etc/init.d/nginx

Erklärung: a+x ==> alle Benutzer können ausführen (alle Benutzer können ausführen) bedeutet

Schritt 4: Skripte verwalten

An diesem Punkt können wir das Nginx-Skript verwenden, um den Dienst zu verwalten

# /etc/init.d/nginx start Starten Sie den Dienst. # /etc/init.d/nginx stop Stoppen Sie den Dienst. # /etc/init.d/nginx restart Starten Sie den Dienst neu. # /etc/init.d/nginx status Überprüfen Sie den Status des Dienstes. # /etc/init.d/nginx reload Aktualisieren Sie die Konfigurationsdatei.

2 Verwenden Sie die chkconfig-Verwaltung

Die obige Methode vervollständigt die Funktion der Verwaltung des Nginx-Dienstes mit Skripten, ist aber dennoch nicht sehr praktisch. Sie müssen beispielsweise Nginx so einrichten, dass es beim Booten gestartet wird.

Derzeit können wir chkconfig zur Verwaltung verwenden.

Schritt 1: Fügen Sie den Nginx-Dienst zur Chkconfig-Verwaltungsliste hinzu

# chkconfig --add /etc/init.d/nginx

Schritt 2: Service-Management-Dienst verwenden

# service nginx start Dienst starten # service nginx stop Dienst stoppen # service nginx restart Dienst neu starten # service nginx status Status des Dienstes abfragen # service nginx relaod Konfigurationsdatei aktualisieren

Schritt 3: Terminalmodus auf Start einstellen

# chkconfig nginx ein

17 Stellen Sie nginx so ein, dass es beim Booten automatisch gestartet wird (centos7.4)

Schritt 1: Gehen Sie zum Verzeichnis /lib/systemd/system/

[root@iz2z init.d]# cd /lib/systemd/system/

Schritt 2: Erstellen Sie die Datei nginx.service und bearbeiten Sie sie

# vim nginx.service

Der Inhalt ist wie folgt:

[Einheit]
Beschreibung=nginx-Dienst
Nach=Netzwerk.Ziel 
   
[Service] 
Typ=Forking 
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s neu laden
ExecStop=/usr/local/nginx/sbin/nginx -s beenden
PrivateTmp=true 
   
[Installieren] 
WantedBy=Mehrbenutzer.Ziel

[Einheit]: Beschreibung des Dienstes

Beschreibung:Beschreiben Sie den Dienst

Nachher: ​​Beschreiben Sie die Servicekategorie

[Service] Einstellen der Servicebetriebsparameter

Type=forking bedeutet Hintergrundoperation

ExecStart ist der spezifische Ausführungsbefehl des Dienstes

ExecReload ist der Neustartbefehl

ExecStop ist der Stoppbefehl

PrivateTmp=True bedeutet, dem Dienst unabhängigen temporären Speicherplatz zuzuweisen

Hinweis: Alle Start-, Neustart- und Stoppbefehle von [Service] erfordern absolute Pfade.

[Installieren] Verwandte Einstellungen für die Dienstinstallation unter der Ausführungsebene können auf Mehrbenutzer eingestellt werden, d. h. die Systemausführungsebene ist 3

Speichern und beenden.

Schritt 3: Autostart hinzufügen

# systemctl nginx aktivieren

Wenn Sie den Computer nicht automatisch starten möchten, können Sie den automatischen Start mit dem folgenden Befehl abbrechen

# systemctl nginx deaktivieren

Schritt 4: Dienst starten/stoppen/Konfigurationsdatei aktualisieren/Status prüfen

# systemctl start nginx.service Nginx-Dienst starten# systemctl stop nginx.service Dienst stoppen# systemctl restart nginx.service Dienst neu starten# systemctl list-units --type=service Alle gestarteten Dienste anzeigen# systemctl status nginx.service Aktuellen Status des Dienstes anzeigen# systemctl enable nginx.service Autostart beim Booten einstellen# systemctl disable nginx.service Autostart beim Booten stoppen

Ein häufiger Fehler: Warnung: nginx.service hat sich auf der Festplatte geändert. Führen Sie „systemctl daemon-reload“ aus, um die Einheiten neu zu laden.

Folgen Sie einfach den Anweisungen und führen Sie den Befehl systemctl daemon-reload aus.

# systemctl daemon-reload

18 Starten Sie das System neu und starten Sie nginx erneut, um einen Fehler zu melden

1 Fehlerstelle

Nach dem Einrichten des Autostarts auf der virtuellen Maschine centos6.5 kann das System nach dem Neustart ohne Fehler normal gestartet werden.

Die Autostart-Einstellungen von centos6.5 finden Sie in Abschnitt 16.

Informationen zum Konfigurieren des automatischen Starts finden Sie jedoch in CentOS 7.4 (auf Alibaba Cloud) in Teil 17. Starten Sie das System neu und stellen Sie fest, dass Nginx nicht automatisch startet

Um den Status zu prüfen, verwenden Sie den Befehl systemctl status nginx. Der Inhalt lautet wie folgt:

Dann bin ich direkt in das Verzeichnis /usr/local/nginx/sbin gegangen und habe ./nginx ausgeführt. Es erschien die folgende Fehlermeldung:

Anhand dieser beiden Eingabeaufforderungen können wir grob erkennen, dass sie uns mitteilen, dass die Datei nginx.pid im Verzeichnis /var/run/nginx/ nicht gefunden werden kann.

2 Fehlerbehebung

Schritt 1: Wechseln Sie in das Verzeichnis cd /usr/local/nginx/conf/ und bearbeiten Sie die Konfigurationsdatei nginx.conf;

Suchen Sie in der Konfigurationsdatei: #pid logs/nginx.pid;

Ändern Sie es wie folgt: Entfernen Sie die Kommentare und ändern Sie es in Ihren eigenen Pfad.

Ändern, speichern und beenden

Schritt 2: Erstellen Sie das Verzeichnis /var/run/nginx/

# mkdir /var/run/nginx -p

Schritt 3: Starten Sie den nginx-Dienst

# /usr/local/nginx/sbin/nginx

Sie können überprüfen, ob der Start erfolgreich war.

3. Wiederkehrende Fehler

[emerg] open() "/var/run/nginx/nginx.pid" ist fehlgeschlagen (2: Keine solche Datei oder kein solches Verzeichnis)

Tests haben gezeigt, dass die Ordner var/run/nginx und nginx gelöscht werden, solange der Neustartbefehl ausgeführt wird.

Es ist äußerst mühsam, jedes Mal den Nginx-Ordner zu erstellen. Ich kann es nicht ertragen. unter

Lassen Sie uns dieses Problem weiter lösen.

Schritt 1: Wechseln Sie in das Verzeichnis cd /usr/local/nginx/conf/ und bearbeiten Sie die Konfigurationsdatei nginx.conf;

Schritt 2: Erstellen Sie einen Protokollordner im Verzeichnis /usr/local/nginx

# mkdir /usr/local/nginx/logs 

Schritt 3: Kopieren Sie die Datei nginx.pid im Verzeichnis /var/run/nginx/ in den im zweiten Schritt erstellten Ordner „logs“.

# cp nginx.pid /usr/local/nginx/logs/ 

Schritt 4: Kopieren Sie den Ordner logs unter conf

# cp -r Protokolle conf 

Schritt 5: Ändern Sie die Berechtigungen der Datei nginx.pid im Verzeichnis /usr/local/nginx/logs/.

[root@iz2logs]# chmod 755 nginx.pid 

Schritt 6: Neustart

# Neustart

Schritt 6: Starten Sie nginx

# /usr/local/nginx/sbin/nginx 

Diesmal habe ich es endlich erfolgreich gelöst. Ich habe das Problem während der Installation gelöst. Zu diesem Zeitpunkt kann nginx immer automatisch gestartet werden und die Datei nginx.pid wird nach dem Neustart nicht gefunden. Es ist wirklich nicht einfach.

Die Lösung besteht darin, es an einem anderen Ort nach der Datei nginx.pid suchen zu lassen.

Denn die Datei /var/run/nginx/nginx.pid wird nach einem Neustart immer gelöscht.

Einfache Lösung

Der obige Vorgang ist etwas umständlich. Sie können ihn tatsächlich direkt lösen, indem Sie die folgende einfache Methode befolgen.

Ändern Sie die Datei nginx.conf wie folgt:

Erstellen Sie ein Protokollverzeichnis im Verzeichnis /usr/local/nginx/.

Anschließend wird es gestartet und auch bei einem Neustart nicht gelöscht.

Auf diese Weise kann auch die Konfiguration der folgenden Protokolldatei vereinfacht werden, indem das „#“ vor # error_log logs/error.log info; entfernt wird.

error_log Protokolle/error.log Informationen;

19 Konfigurieren des Speicherorts der Protokolldateien

Schritt 1: Wechseln Sie in das Verzeichnis cd /usr/local/nginx/conf/ und bearbeiten Sie die Konfigurationsdatei nginx.conf;

Schritt 2: Stellen Sie sicher, dass dieser Pfad existiert. Sie können das Verzeichnis für diese Konfiguration direkt erstellen.

# mkdir -p /var/log/nginx/

Schritt 3: Aktualisieren der Konfigurationsdatei

# /usr/local/nginx/sbin/nginx -s neu laden

Zusammenfassen

Dies ist das Ende dieses Artikels über die Installation und Konfiguration von nginx. Weitere relevante Inhalte zur Installation und Konfiguration von nginx finden Sie in den vorherigen Artikeln auf 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:
  • Der gesamte Prozess der siebenschichtigen und vierschichtigen Reverse-Proxy-Konfiguration von Nginx
  • Detaillierte Anleitung für nginx von der Installation bis zur Konfiguration (Installation, Sicherheitskonfiguration, Anti-Hotlinking, dynamische und statische Trennung, HTTPS-Konfiguration, Leistungsoptimierung)
  • Konfiguration jedes Nginx-Moduls und allgemeine Konfigurationsoptionen
  • Nginx ist als Dienst eingerichtet und startet automatisch beim Booten
  • Verwenden Sie Docker, um Nginx zu installieren und Probleme und Lösungen zur Portweiterleitung zu konfigurieren
  • Vollständige Erläuterung der Konfigurationsschritte des virtuellen Nginx-Hosts

<<:  Mobiles Internet-Zeitalter: Responsive Webdesign ist zum allgemeinen Trend geworden

>>:  mysql IS NULL mit Indexfallerklärung

Artikel empfehlen

So erstellen Sie eine Deep-Learning-Umgebung mit Python in einem Docker-Container

Überprüfen Sie die Virtualisierung im Task-Manage...

Einfache Verwendung des Vue Vee-Validate-Plugins

Inhaltsverzeichnis 1. Installation 2. Import 3. V...

Ubuntu 20.04 – Bestes Konfigurationshandbuch (unverzichtbar für Anfänger)

1. Systemkonfiguration 1. Deaktivieren Sie das Su...

MySQL-Gruppierungsabfragen und Aggregatfunktionen

Überblick Ich glaube, dass wir häufig auf solche ...

So konfigurieren Sie mehrere Tomcats mit Nginx-Lastausgleich unter Linux

Die Methoden zur Installation von Nginx und mehre...

Das WeChat-Applet implementiert einen einfachen Rechner

Ein einfacher Rechner, der als Referenz in das We...

Docker-Installations- und Konfigurationsschritte für das Redis-Image

Inhaltsverzeichnis Vorwort Umfeld Installieren Er...

Analyse des Prinzips der Zentrierung von Elementen mit CSS

Es ist eine sehr häufige Anforderung, die horizon...

JavaScript zur Implementierung eines Sprachwarteschlangensystems

Inhaltsverzeichnis einführen Hauptmerkmale Effekt...