Detaillierte Erläuterung des praktischen Protokolls zur Lösung der Netzwerkisolation durch Nginx

Detaillierte Erläuterung des praktischen Protokolls zur Lösung der Netzwerkisolation durch Nginx

brauchen

Vor Kurzem mussten wir die Node-Onlinedienste migrieren und haben daher zwei neue Onlineserver beantragt.

Nach der Bereitstellung des Servers müssen Sie überprüfen, ob der Dienst normal ist. Die Büroumgebung und das Netzwerk der Onlineumgebung sind isoliert und können nicht direkt aufgerufen werden. Auf den Onlineserver kann jedoch über den Bereitstellungsserver zugegriffen werden, und das Büronetzwerk kann auf die Bereitstellungsmaschine zugreifen.

Daher können Sie auf der Bereitstellungsmaschine einen Proxy konfigurieren, die Bereitstellungsmaschine aus der Büroumgebung anfordern und die Anforderung dann per Proxy an den Onlinedienst weiterleiten, um zu überprüfen, ob der Dienst normal ist.

Die gesamte Netzwerkstruktur ist in der folgenden Abbildung dargestellt:

Nginx-Installation

herunterladen

Download-Seite: http://nginx.org/en/download.html Wählen Sie die Version aus und kopieren Sie die Linkadresse mit einem Rechtsklick.

# Herunterladen [work@40-10-14 opt]$ wget http://nginx.org/download/nginx-1.18.0.tar.gz
# Entpacken Sie die Datei [work@40-10-14 opt]$ tar -xvf nginx-1.18.0.tar.gz

Installieren

# 1. Standardinstallation: Rufen Sie das entpackte Verzeichnis mit Root-Rechten auf und führen Sie den folgenden Befehl aus, um [root@40-10-14 nginx-1.18.0] zu installieren.# ./configure && make && make install

# 2. Geben Sie das Verzeichnis an: Installieren Sie in das angegebene Verzeichnis /opt/nginx [work@40-10-14 opt]$ mkdir /opt/nginx
[Arbeit@40-10-14 nginx-1.18.0]$ ./configure --prefix=/opt/nginx && make && mae install

Die Standardinstallation meldet den folgenden Fehler, wenn Sie keine Root-Berechtigungen haben

mkdir: Verzeichnis „/usr/local/nginx“ kann nicht erstellt werden: Berechtigung verweigert
make[1]: *** [install] Fehler 1
make[1]: Verlasse das Verzeichnis `/opt/nginx-1.18.0'
make: *** [install] Fehler 2

Überprüfen Sie nach der Standardinstallation das Installationsverzeichnis von nginx und Sie können sehen, dass es im Verzeichnis /usr/local/nginx installiert ist

[root@40-10-14 opt]# wo ist nginx
nginx: /usr/local/nginx

1. Es wird empfohlen, die Installation mit der angegebenen Verzeichnismethode durchzuführen. Wenn Sie für die Installation auf Root-Berechtigungen umstellen, sind für nachfolgende Änderungen an der Konfigurationsdatei ebenfalls Root-Berechtigungen erforderlich.
2. Oder ändern Sie nach der Root-Installation die Berechtigungen, um normalen Benutzern den Betrieb zu ermöglichen

Softlink hinzufügen

Fügen Sie einen Softlink hinzu, um den Nginx-Befehl global zugänglich zu machen, sodass Sie nicht bei jeder Ausführung in das Installationsverzeichnis wechseln müssen.

# Softlink hinzufügen [root@40-10-14 sbin]# ln -s /opt/nginx/sbin/nginx /usr/local/bin/
# Überprüfen Sie die Version [root@40-10-14 sbin]# nginx -v
Nginx-Version: nginx/1.18.0

Allgemeine Befehle

  • Anfang: nginx
  • Stopp: nginx -s stop
  • Neustart: nginx -s reload
  • Hilfebefehl: nginx -h

Stopp erzwingen:

# Zeigen Sie die Linux-Prozess-ID an
[root@40-10-14 ~]# ps -ef | grep nginx
niemand 45198 1 0 16:12 ? 00:00:00 nginx: Arbeitsprozess
Wurzel 51261 50692 0 17:00 Punkte/0 00:00:00 grep nginx
# Schließen Sie den Prozess [root@40-10-14 ~]# kill 45198
# Der vorherige Prozess wurde geschlossen [root@40-10-14 ~]# ps -ef | grep nginx
Wurzel 51277 50692 0 17:00 Punkte/0 00:00:00 grep nginx

Konfigurieren des Proxys

Um die Anforderungsweiterleitung zwischen den beiden Maschinen zu konfigurieren, bearbeiten Sie die Datei nginx/conf/nginx.conf im Nginx-Installationsverzeichnis.

#Benutzer niemand;
Arbeiterprozesse 1;

#error_log Protokolle/Fehler.log;
#error_log Protokolle/error.log Hinweis;
#error_log Protokolle/error.log-Info;

#pid-Protokolle/nginx.pid;


Ereignisse {
  Arbeiterverbindungen 1024;
}


http {
  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;

  # Die Anfrage muss an die folgenden zwei Maschinen weitergeleitet werden, wobei der Verkehr gleichmäßig aufgeteilt werden muss. Geben Sie die IP-Adresse und den Port des Upstream-Zpservers an {
       Server xx.xx.xx.22:10001;
       Server xx.xx.xx.23:10001;
  }

  Server {
    # Der Nginx-Service-Port ist 80
    hören Sie 80;
    Servername localhost;

    #Zeichensatz koi8-r;

    #access_log Protokolle/Host.access.log Haupt;

    # Nur Anfragen an den /user-Stammpfad werden weitergeleitet location /user {
      Stamm-HTML;
      Index Index.html Index.htm;
      Proxy-Passwort http://zpserver;
    }

    #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;
  # }
  #}

}

Hinweis: Nachdem Sie die Nginx-Konfigurationsdatei geändert haben, müssen Sie nginx -s reload ausführen, damit die Änderungen wirksam werden.

verifizieren

Da für viele Onlinedienste eine Anmeldung erforderlich ist, müssen Sie für den Zugriff auf diese den Domänennamen und nicht die IP-Adresse verwenden, da Cookies an Domänennamen gebunden sind.

Die Lösung für dieses Problem ist ganz einfach. Konfigurieren Sie einfach den lokalen Host.

#IP ist die IP des Nginx-Servers
xx.xx.xx.14 xxx.daojia.com

Mit der obigen Konfiguration können Sie indirekt über Nginx auf dem Bereitstellungscomputer auf den Onlinedienst zugreifen, indem Sie xxx.daojia.com im lokalen Browser anfordern, um zu testen, ob der Dienst im Intranet korrekt ist. Wenn der Dienst normal funktioniert, können Sie den Onlineverkehr umstellen.

Dies ist das Ende dieses Artikels über die detaillierte Aufzeichnung der Netzwerkisolationspraxis durch Nginx. Weitere relevante Inhalte zur Netzwerkisolation von Nginx finden Sie in früheren 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:
  • Detaillierte Erklärung und Isolierung der in Nginx integrierten Variablen zum einfachen Abfangen

<<:  React-Methode zum Anzeigen von Daten auf Seiten

>>:  Analyse des kumulativen Aggregationsprinzips von MySQL und Anwendungsbeispiele

Artikel empfehlen

Lassen Sie uns kurz über die Änderungen im Setup in vue3.0 sfc sprechen

Inhaltsverzeichnis Vorwort Standard-SFC-Schreibme...

Zusammenfassung der Formulardesigntechniken im Webdesign

„Eingaben sollten in logische Gruppen unterteilt ...

So fragen Sie schnell 10 Millionen Datensätze in MySQL ab

Inhaltsverzeichnis Normale Paging-Abfrage So opti...

Detaillierte Erklärung zu React Hooks

Inhaltsverzeichnis Was sind Hooks? Klassenkompone...

Zwei Implementierungen des Front-End-Routings von Vue-Router

Inhaltsverzeichnis Modusparameter HashHistorie Ha...

Ein Bugfix für Tomcats automatisches Herunterfahren

Vorwort Bei einem seit 4 Jahren laufenden Java EE...

Lösung für ungültige obere Ränder von Elementen in Div-Tags

Genau wie der Titel sagt. Die Frage ist sehr merkw...

Json-String + Cookie + lokaler Speicher in JS

Inhaltsverzeichnis 1.JSON-Zeichenfolge 1.1Json-Sy...

Einführung in die SSL- und WSS-Schritte für die Nginx-Konfiguration

Inhaltsverzeichnis Vorwort 1. Nginx-Installation ...

HTML-Codebeispiel: Detaillierte Erklärung von Hyperlinks

Hyperlinks sind die am häufigsten verwendeten HTM...

Vue implementiert Chat-Schnittstelle

In diesem Artikelbeispiel wird der spezifische Co...

Vergleich mehrerer Beispiele zur Einfügungseffizienz in MySQL

Vorwort Aus beruflichen Gründen musste ich kürzli...

JavaScript zur Implementierung des Anmeldeformulars

In diesem Artikelbeispiel wird der spezifische Ja...

Verwendung des Docker-Systembefehlssatzes

Inhaltsverzeichnis Docker-System df Docker-System...