Analyse der Nginx-Konfiguration und häufig gestellter Fragen des Alibaba Cloud CentOS7-Servers

Analyse der Nginx-Konfiguration und häufig gestellter Fragen des Alibaba Cloud CentOS7-Servers

Vorwort:

Dieser Artikel bezieht sich auf den Blog von jackyzm: https://www.cnblogs.com/jackyzm/p/9600738.html und aktualisiert den Inhalt. Bitte beachten Sie, dass die hier geltende Version die Centos7-Version ist. Die Konfigurationsmethode in diesem Artikel ist bei Version 8 fehlgeschlagen. Daher sollten Sie vor dem Anzeigen dieses Artikels am besten die Serverversion ermitteln.

Zur Behandlung einiger Nginx-Probleme verweisen wir auf den Artikel: http://www.mamicode.com/info-detail-3008792.html. Einige der enthaltenen Fehler sind die folgenden:

1.make[1]: *** [objs/Makefile:473: objs/src/core/ngx_murmurhash.o] Fehler 1

2.make[1]: *** [objs/Makefile:774: objs/src/os/unix/ngx_user.o] Fehler 1

3.make[1]: *** [objs/Makefile:769: objs/src/event/ngx_event_openssl.o] Fehler 1

In diesem Artikel werden Lösungen und Prozessverbesserungen für diese und andere Probleme erläutert.

Inhaltsfluss:

0. Vorabanweisungen, 1. Installieren Sie die gcc-Umgebung, 2. Installieren Sie die pcre-Bibliothek, 3. Installieren Sie die ssl-Bibliothek, 4. Installieren Sie die zlib-Bibliothek, 5. Installieren Sie nginx, Anhang: Mögliche Probleme mit nginx während des Make-Prozesses, 6. Starten und verwenden Sie nginx, 7. Lösen Sie das Problem der Unzugänglichkeit nach dem Start von nginx

Spezifische Inhalte:

0. Vorabinformationen

Im CentOS-System stellt die Yum-Quelle keine direkte Nginx-Installation bereit. Sie können Nginx also installieren, indem Sie die Yum-Quelle wechseln oder die Abhängigkeitsbibliothek und das Nginx-Installationspaket direkt herunterladen. Dieser Artikel stellt Letzteres vor.

Die Beziehung zwischen einigen erforderlichen Bibliotheken und nginx: Das gzip-Modul in nginx erfordert die zlib-Bibliothek, das Rewrite-Modul erfordert die pcre-Bibliothek und die SSL-Funktion erfordert die OpenSSL-Bibliothek

Anschließend wird in diesem Artikel /usr/local als Installationsverzeichnis ausgewählt. Die spezifischen Versionsnummern einiger Bibliotheken können je nach tatsächlichem Bedarf geändert werden. Aufgrund ihrer gegenseitigen Abhängigkeit können jedoch bei den neuesten Versionen einige Probleme auftreten. Wählen Sie daher sorgfältig aus.

Die folgenden Befehle müssen mit Root-Rechten ausgeführt werden:

1. Installieren Sie gcc gcc-c++ (wenn es sich um eine neue Umgebung handelt, installieren Sie es bitte zuerst, falls es noch nicht installiert ist)

$ yum install -y gcc gcc-c++

2. Installieren Sie die pcre-Bibliothek

$ cd /usr/lokal/

$ wget https://sourceforge.net/projects/pcre/files/pcre/8.36/pcre-8.36.tar.gz

(Hinweis: Die pcre-Version wird in Echtzeit aktualisiert. Version 8.36 ist auch eine alte Version. Wenn Sie die neueste Version benötigen, können Sie selbst nach pcre suchen und dann die neue Version auswählen. Die neue Version ist jedoch möglicherweise instabil. Seien Sie daher vorsichtig.

Die aktuelle URL zum Herunterladen der neuen Version lautet: https://sourceforge.net/projects/pcre/files/pcre/)

$ tar -zxvf pcre-8.36.tar.gz

$ CD PCRE-8.36

$ ./konfigurieren

$ machen && machen installieren

Wenn ein Fehler gemeldet wird: configure: error: Sie benötigen einen C++-Compiler für die C++-Unterstützung

Lösung: yum install -y gcc gcc-c++

3. SSL-Bibliothek installieren

$ cd /usr/lokal/

$ wget https://www.openssl.org/source/openssl-1.0.1j.tar.gz

(Hinweis: Für OpenSSL gibt es auch Versionsaktualisierungen. Hier ist die Version 2020.04. Die aktuelle URL zum Abrufen der neuen Version finden Sie unter: https://www.openssl.org/source/

Der Grund, warum ich hier nicht 1.1.x oder andere Versionen verwendet habe, ist, dass bei der späteren Installation von nginx ein nicht lösbarer Fehler aufgetreten ist. Deshalb habe ich diese ältere Version gewählt. Wenn der Fehler behoben werden kann, können Sie es versuchen. Ich wäre noch dankbarer, wenn Sie mir die Lösung oder den erfolgreichen Fall mitteilen könnten.)

$ tar -zxvf openssl-1.0.1j.tar.gz

$ cd openssl-1.0.1j

$ ./konfiguration

$ machen && machen installieren

4. Installieren Sie die zlib-Bibliothek

$ cd /usr/lokal/

$ wget http://zlib.net/zlib-1.2.11.tar.gz

(Hinweis: Wie zuvor lautet die Website für aktualisierte Versionen: http://zlib.net/)

$ tar -zxvf zlib-1.2.11.tar.gz

$ cd zlib-1.2.11

$ ./konfigurieren

$ machen && machen installieren

5. Installieren Sie nginx

$ cd /usr/lokal/

$ wget http://nginx.org/download/nginx-1.8.0.tar.gz

(Hinweis: Die URL zum Download der neuen Version lautet wie bisher: http://nginx.org/download/)

$ tar -zxvf nginx-1.8.0.tar.gz

$ cd nginx-1.8.0

$ ./configure --user=niemand --group=niemand --prefix=/usr/local/nginx --mit-http_stub_status_module --mit-http_gzip_static_module --mit-http_realip_module --mit-http_sub_module --mit-http_ssl_module--mit-pcre=/usr/local/pcre-8.36 --mit-zlib=/usr/local/zlib-1.2.11 --mit-openssl=/usr/local/openssl-1.0.1j

(Hinweis: Wenn --with-http_ssl_module: nach der Konfiguration von ssl: on in nginx.conf nicht hinzugefügt wird, wird beim Start die Ausnahme nginx: [emerg] unbekannte Direktive „ssl“ in /opt/nginx/conf/nginx.conf gemeldet; die Spezifikation von pcre, zlib, openssl usw. soll sicherstellen, dass nginx mit der zuvor heruntergeladenen Version übereinstimmen kann. Beachten Sie, dass Pfad und Versionsnummer geändert werden müssen, damit sie der zuvor heruntergeladenen Version entsprechen.)

$ machen && machen installieren

Anhang: Probleme die während des Make-Prozesses von nginx auftreten können:

Fehler 1: make[1]: *** [objs/Makefile:460: objs/src/core/ngx_murmurhash.o] Fehler 1

Warnungen als Fehler behandeln und das Programm beenden

Lösung: Gehen Sie zum Ordner „objs“ des Nginx-Installationsverzeichnisses und ändern Sie die Makefile-Datei:

Drücken Sie „a“, um in den Bearbeitungsmodus zu wechseln, entfernen Sie „-Werror“ in CFLAGS, drücken Sie dann „esc“ und geben Sie „:wq“ ein, um zu speichern und zu beenden

Versuchen Sie dann den Befehl make && make install erneut

Fehler 2: make[1]: *** [objs/Makefile:747: objs/src/os/unix/ngx_user.o] Fehler 1

Es erinnert uns daran, dass struct crypt_data‘ kein Mitglied mit dem Namen ‚current_salt‘ hat: cd.current_salt[0] = ~salt[0]; der ursprüngliche Autor sagte, dass der beste Weg darin besteht, die Version zu ändern. Die hier ausgewählte Version 1.9 hat einen Fehler, aber sie hat nach dem Wechsel zu nginx1.8 immer noch keine Wirkung, daher wird eine alternative Lösung basierend auf nginx1.8 verwendet: Codekommentare

Das heißt, führen Sie im nginx-Installationsverzeichnis vim src/os/unix/ngx_user.c aus, um den Code in Zeile 36 von ngx_user.c wie folgt zu kommentieren:

Speichern und beenden Sie dann. Versuchen Sie erneut make && make install

Fehler 3: make[1]: *** [objs/Makefile:769: objs/src/event/ngx_event_openssl.o] Fehler 1

Dies zeigt an, dass die SSL-Version nicht an nginx übermittelt wurde. Dies liegt wahrscheinlich daran, dass die SSL-Version während des vorherigen ./configure nicht angegeben wurde. Eine Neukonfiguration ist erforderlich, d. h. die SSL-Spezifikation muss während der Konfiguration hinzugefügt werden.

--with-openssl=/usr/local/openssl-1.0.1j

Fehler 4: ./configure: Fehler: SSL-Module erfordern die OpenSSL-Bibliothek.

Sie können versuchen, den folgenden Befehl auszuführen:

yum -y installiere OpenSSL OpenSSL-Devel

Fehler 5: ./configure: Fehler: Das HTTP-GZIP-Modul erfordert die Zlib-Bibliothek

Die Pfade der anderen beiden Bibliotheken wurden während der Konfiguration nicht angegeben. Fügen Sie nach –prefix den folgenden Befehl hinzu (siehe die Ausführung des Befehls ./configure für die spezifische Verwendung):

--with-pcre=/usr/local/pcre-8.36 bezieht sich auf den Quellpfad von pcre-8.36. --with-zlib=/usr/local/zlib-1.2.11 bezieht sich auf den Quellpfad von zlib-1.2.11.

Wenn der obige Fehler das Problem immer noch nicht lösen kann, überprüfen Sie am besten, ob die CentOS-Version 7 ist. Bei mir war es direkt nach dem Ändern der Systemversion erfolgreich. Sollten Sie auf weitere Fehler stoßen, suchen Sie am besten selbst danach. Wenn wir diese nicht beheben können, tut uns das sehr leid.

6. Starten und verwenden Sie nginx

$ /usr/local/nginx/sbin/nginx

Zeichen für erfolgreichen Start: Öffnen Sie den Browser und rufen Sie die IP-Adresse des Servers auf. Wenn der Browser „Willkommen bei nginx!“ anzeigt, bedeutet dies, dass nginx erfolgreich installiert und ausgeführt wurde.

Einige andere Befehle sind wie folgt:

Neustart:

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

stoppen:

$ /usr/local/nginx/sbin/nginx -s stoppen

Testen Sie, ob die Konfigurationsdatei normal ist:

$ /usr/local/nginx/sbin/nginx -t

Schließen erzwingen:

$ pkill nginx

Hinweis: Hier ist kein Softlink festgelegt, daher kann dies nur über eine so lange Anweisung verwaltet werden. Bei Bedarf können Sie es selbst abrufen und verarbeiten. Wenn ich später Zeit habe, werde ich es in diesem Artikel aktualisieren.

7.Lösung für das Problem der Unzugänglichkeit nach dem Start von nginx

Wenn Sie die Nginx-Seite hier immer noch nicht sehen können, liegt dies möglicherweise daran, dass die Sicherheitsgruppe des Servers nicht konfiguriert ist. Beispielsweise muss Alibaba Cloud hier die Konfiguration von http und Port 80 wie folgt hinzufügen:

Nachdem die Sicherheitsgruppe konfiguriert ist, aktualisieren Sie einfach die Seite, um die Nginx-Erfolgsseite anzuzeigen.

Abschließend wünsche ich Ihnen allen eine reibungslose Konfiguration.

Dies ist das Ende dieses Artikels über die Analyse der Nginx-Konfiguration des Alibaba Cloud CentOS7-Servers und die Beantwortung allgemeiner Fragen. Weitere Informationen zur Nginx-Konfiguration von Alibaba Cloud CentOS7 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Alibaba Cloud CentOS 7 Server Build Nginx Web Service Erfahrungsbeispiel
  • So installieren Sie Python 3.6 auf Alibaba Cloud CentOS 7.4
  • Alibaba Cloud CentOS7 erstellt eine Apache+PHP+MySQL-Umgebung
  • Detaillierte Erläuterung der Verwendung der Yum-Quelle in CentOS7 Alibaba Cloud
  • Tutorial zur Installation von Mongodb auf Alibaba Cloud CentOS7
  • Installieren Sie LNMP+WordPress auf Alibaba Cloud Centos7

<<:  Detaillierter Installationsprozess von MySQL5.6.40 unter CentOS7 64

>>:  Eine kurze Analyse der startReactApplication-Methode von React Native

Artikel empfehlen

So erstellen Sie einen pptpd-Dienst in Alibaba Cloud Ubuntu 16.04

1. Um ein PPTP-VPN aufzubauen, müssen Sie Port 17...

Installieren und konfigurieren Sie SSH in CentOS7

1. Installieren Sie openssh-server yum install -y...

MySQL 8.0.12 Einfaches Installations-Tutorial

In diesem Artikel finden Sie das Installations-Tu...

HTML-Code, der den Internet Explorer zum Einfrieren bringen kann

Wir müssen lediglich einen beliebigen Texteditor ö...

Erstellen Sie mit Flutter eine verschiebbare Stapel-Widget-Funktion

Dieser Beitrag konzentriert sich auf ein streng g...

XHTML drei Dokumenttypdeklarationen

XHTML definiert drei Dokumenttypdeklarationen. Am...

Detaillierte Erklärung der JSONObject-Verwendung

JSONObject ist lediglich eine Datenstruktur, die ...

Analyse und Lösung des durch Chrome 73 verursachten Flex-Layout-Zusammenbruchs

Phänomen Es gibt mehrere verschachtelte Flex-Stru...

Feste Tabellenbreite table-layout: fest

Damit die Tabelle den Bildschirm (den verbleibende...

Die Bedeutung des Statuscodes im HTTP-Protokoll

Ein Statuscode, der eine vorläufige Antwort anzei...

Deaktivieren Sie die IE-Bildsymbolleiste

Ich habe es gerade auf IE6 ausprobiert und die Sym...

Vues Render-Funktion

Inhaltsverzeichnis 1. Knoten, Bäume und virtuelle...