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

Vue implementiert die browserseitige Code-Scan-Funktion

Hintergrund Vor nicht allzu langer Zeit habe ich ...

Kombinieren von XML- und CSS-Stilen

student.xml <?xml version="1.0" enco...

Implementierung der Nginx-Konfiguration https

Inhaltsverzeichnis 1: Bereiten Sie das https-Zert...

12 Arten der Komponentenkommunikation in Vue2

Inhaltsverzeichnis 1. Requisiten 2..synchronisier...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.12

Das Download- und Installationstutorial für MySQL...

Navicat importiert CSV-Daten in MySQL

In diesem Artikel erfahren Sie, wie Sie mit Navic...

Detaillierte Erklärung der Verwendung des chmod-Befehls in Linux

chmod-Befehlssyntax Dies ist die korrekte Syntax ...

JavaScript-Canvas zum Erzielen eines Regentropfeneffekts

In diesem Artikelbeispiel wird der spezifische Co...

JavaScript, um den Effekt des Tab-Leistenwechsels zu erzielen

Registerkartenleiste: Klicken Sie auf verschieden...

JavaScript implementiert Konstellationsabfragefunktion mit detailliertem Code

Inhaltsverzeichnis 1. Titel 2. Code 3. Ergebnisse...