Beispiel für die Verwendung von Nginx zur Implementierung eines TCP-Proxys mit Portweiterleitung

Beispiel für die Verwendung von Nginx zur Implementierung eines TCP-Proxys mit Portweiterleitung

Nachfragehintergrund

Kürzlich hat ein Kollege eine Anwendung in der Test- bzw. Produktionsumgebung bereitgestellt. Da die Anwendung nur LDAP integrieren kann und unser Unternehmen AD verwendet, habe ich einen OpenLDAP-Dienst erstellt. Das Konto wird zuerst über lsc von AD mit OpenLDAP synchronisiert, und dann wird saslauthd verwendet, um die Authentifizierung an AD weiterzugeben. In der Testumgebung kann unsere Anwendung eine Verbindung zu LDAP herstellen, um sich anzumelden, aber in der Produktionsumgebung kann sie nicht auf den OpenLDAP-Server zugreifen. Ich möchte in der Produktionsumgebung nicht wiederholt eine Reihe von OpenLDAP-Diensten neu installieren und warten. Dieser Vorgang ist umständlich und erfordert eine geplante Aufgabe, um das AD-Konto jeden Tag mit OpenLDAP zu synchronisieren. Ich denke also, dass dies durch Portweiterleitung erreicht werden kann. Die Topologie zwischen den Knoten sieht ungefähr wie folgt aus.

Bildbeschreibung hier einfügen

Warum Nginx verwenden?

Suchen Sie auf Baidu nach Portweiterleitung. Es gibt viele Möglichkeiten, dies umzusetzen. Die meisten davon werden über Iptables implementiert. Ich habe es jedoch auf Ubuntu- und CentOS-Servern getestet und es hat nicht funktioniert. Mir blieb nichts anderes übrig, als Nginx für die Implementierung auszuwählen.

Portweiterleitung mit Nginx

Wenn unser Betriebssystem relativ neu ist, können wir nginx direkt über die Softwarequelle installieren. Solange die nginx-Version höher als 1.9 ist, unterstützt es standardmäßig TCP-Proxy.

Überprüfen Sie, ob Nginx TCP-Proxy unterstützt

nginx -V

Wenn wir --with-stream in die Ausgabekonfigurationsparameter einschließen, bedeutet dies, dass nginx TCP-Proxy unterstützt.

Abhängigkeiten installieren

RHEL/CentOS/Fedora

yum install -y pcre* openssl*

Debian/Ubuntu

apt-get install zlib1g-dev libpcre++-dev openssl

Abhängigkeiten herunterladen

wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
tar -zxvf ngx_cache_purge-2.3.tar.gz -C /usr/local/src

Herunterladen und installieren

Quellpaket herunterladen

wget http://nginx.org/download/nginx-1.9.9.tar.gz

Entpacken

tar -zxf nginx-1.9.9.tar.gz

Kompilieren und installieren

cd nginx-1.9.9
./configure --prefix=/usr/local/nginx \
  --add-module=/usr/local/src/ngx_cache_purge-2.3 \
  --mit-http_stub_status_module --mit-stream
machen && machen installieren;

Ändern der Konfigurationsdatei

/usr/local/nginx/conf/nginx.conf

Ereignisse {
  ...
}

Strom {
    Upstream-LDAP {
        Hash $remote_addr konsistent;
        Server 192.168.1.8:389;
    }
    Server {
        hören Sie 1389;
        Proxy-Verbindungs-Timeout 5 s;
        Proxy_Timeout 5 s;
        Proxy_Passwort LDAP;
    }
}

http {
  ...
}

In diesem Beispiel leiten wir den lokalen Port 1389 an Port 389 auf 192.168.1.8 weiter.

Starten Sie und prüfen Sie, ob der Dienst normal ist

Starten Sie den Nginx-Dienst

/usr/local/nginx/sbin/nginx

Überprüfen Sie den Nginx-Prozess

netstat -anput | grep nginx

Damit ist dieser Artikel über die Verwendung von Nginx zur Implementierung von Beispielen für die Portweiterleitung von TCP-Proxys abgeschlossen. Weitere verwandte Inhalte zu Nginx-Portweiterleitungs-TCP-Proxys 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:
  • Nginx-Stream-Konfigurationsproxy (Nginx TCP/UDP-Lastausgleich)
  • nginx erstellt einen TCP-Proxyserver

<<:  Beispielcode für CSS3 zum Erzielen eines Bildlaufleisten-Verschönerungseffekts

>>:  Detaillierte Einführung zum MySQL-Cursor

Artikel empfehlen

Eine sehr detaillierte Erklärung des Linux DHCP-Dienstes

Inhaltsverzeichnis 1. DHCP-Dienst (Dynamic Host C...

So verbergen Sie die Versionsnummer in Nginx

Nginx verbirgt die Versionsnummer In einer Produk...

Der Browser der Betaversion IE9 unterstützt HTML5/CSS3

Manche Leute sagen, dass IE9 die zweite Revolutio...

Besser aussehende benutzerdefinierte CSS-Stile (Titel h1 h2 h3)

Rendern Häufig verwendete Stile im Blog Garden /*...

Praxis der mehrschichtigen verschachtelten Anzeige von Elementtabellen

Es wird eine Liste mit mehreren Bestellungen benö...

Das WeChat-Applet implementiert einen einfachen Rechner

Der einfache Rechner des WeChat-Applets dient Ihn...

Erläuterung des Vue.js $refs-Anwendungsfalls

Trotz Props und Events müssen Sie manchmal immer ...

HTML-Grundlagen - Einfaches Beispiel zum Festlegen des Hyperlink-Stils

*** Beispiel für das Festlegen des Stils eines Hy...

Lösung zur inkonsistenten Anzeige der Cursorgröße im Eingabefeld

Die Cursorgröße im Eingabefeld ist inkonsistent De...