Nginx を使用してポート転送 TCP プロキシを実装する例

Nginx を使用してポート転送 TCP プロキシを実装する例

需要背景

最近、同僚がテスト環境と本番環境にそれぞれアプリケーションを展開しました。アプリケーションは LDAP のみを統合でき、当社では AD を使用しているため、OpenLDAP サービスを構築しました。アカ​​ウントは最初に lsc を介して AD から OpenLDAP に同期され、次に saslauthd を使用して認証が AD に渡されます。テスト環境では、アプリケーションは LDAP に接続してログインできますが、本番環境では OpenLDAP サーバーにアクセスできません。本番環境で OpenLDAP サービスのセットを繰り返し再インストールして維持することは望ましくありません。このプロセスは面倒であり、AD アカウントを OpenLDAP と毎日同期するためのスケジュールされたタスクが必要です。したがって、ポート転送によってこれを実現できると思います。ノード間のトポロジは、おおよそ次のようになります。

ここに画像の説明を挿入

Nginx を使用する理由は何ですか?

Baidu でポート転送を検索します。実装方法はたくさんあります。そのほとんどは Iptables を通じて実装されています。ただし、Ubuntu および CentOS サーバーでテストしましたが、機能しませんでした。実装するには Nginx を選択するしかありませんでした。

Nginx によるポート転送

オペレーティング システムが比較的新しい場合は、ソフトウェア ソースを通じて nginx を直接インストールできます。nginx のバージョンが 1.9 より大きい限り、デフォルトで TCP プロキシをサポートします。

nginxがTCPプロキシをサポートしているかどうかを確認する

nginx -V

出力構成パラメータに--with-streamを含めると、nginx が TCP プロキシをサポートしていることを意味します。

依存関係をインストールする

RHEL/CentOS/Fedora

yum インストール -y pcre* openssl*

デビアン/ウブントゥ

apt-get で zlib1g-dev と libpcre++-dev openssl をインストールします。

依存関係をダウンロードする

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

ダウンロードしてインストールする

ソースパッケージをダウンロード

http://nginx.org/download/nginx-1.9.9.tar.gz をダウンロードしてください

解凍

tar -zxf nginx-1.9.9.tar.gz

コンパイルしてインストールする

nginx-1.9.9をインストールします
./configure --prefix=/usr/local/nginx \
  --add-module=/usr/local/src/ngx_cache_purge-2.3 \
  --http_stub_status_module と --stream と連携
作成 && インストールします。

設定ファイルを変更する

nginx.conf は、

イベント {
  ...
}

ストリーム {
    アップストリームLDAP {
        ハッシュ $remote_addr は一貫しています。
        サーバー 192.168.1.8:389;
    }
    サーバー{
        聞く 1389;
        proxy_connect_timeout 5秒;
        proxy_timeout 5秒;
        プロキシパスldap;
    }
}

http {
  ...
}

この例では、ローカルポート1389を192.168.1.8のポート389に転送します。

起動してサービスが正常かどうかを確認します

nginxサービスを開始する

ローカル

nginxプロセスを確認する

netstat -anput | grep nginx

これで、Nginx を使用してポート転送 TCP プロキシの実装例を実装するこの記事は終了です。Nginx ポート転送 TCP プロキシの関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx ストリーム構成プロキシ (Nginx TCP/UDP ロード バランシング)
  • nginx は TCP プロキシ サーバーを構築します

<<:  JavaScript 配列メソッドの詳細な例

>>:  MySQLカーソルの詳細な紹介

推薦する

DockerにNginxをインストールする方法

DockerにNginxをインストールするNginx は、IMAP/POP3/SMTP サービスも提...

MySQLデータベースをアンインストールするための完全な手順

MySQLデータベースを完全にアンインストールするプロセスは次のとおりです。 1. MySQLサービ...

Vueはテーマ切り替えのための複数のアイデアを実装します

目次テーマを動的に変更する最初の方法: 動的コンポーネント2番目の方法はルーティング分離です要約する...

MySQLクライアント認証後の接続失敗の問題に対する完璧なソリューション

MySQL 環境をローカル (192.168.1.152) にデプロイし、リモート クライアント 1...

2つのLinuxサーバー間でファイルとフォルダを転送する手順

今日、私はプロジェクトの移行の問題に取り組んでいましたが、突然、大量の写真をどうやって移動したらよい...

http-proxy-middlewareを使用してNodeでプロキシクロスドメインを実装する方法と手順

目次1. プロキシモジュールをインストールする2. プロキシを設定する1. プロキシモジュールをイン...

nginxワーカープロセスループの実装

ワーカープロセスは、起動されると、まず自身の動作に必要な環境を初期化し、次に実行する必要があるイベン...

HTML/CSSにおける記号論の詳細な説明

この記事では、ソシュールの言語哲学などの理論に基づいて、CSS の class 属性は不要であると主...

「MySQL サービスを開始できません エラー 1069」を解決する方法

今日、外出中に同僚から、ウェブサイトのバックエンドにアクセスできないというメッセージが届きました。と...

スタイル属性 (element.style) で定義されたインライン スタイルを削除する方法

Magento を頻繁に変更する場合、element.style に遭遇することがあります。 これは...

CocosCreatorでクールなレーダーチャートを描く方法

目次序文プレビュー文章グラフィックコンポーネントプロパティ機能グリッドを描く軸角度を計算するスケール...

Mysql のデッドロックの表示とデッドロックの除去の詳細な説明

序文しばらく前にMysqlのデッドロック問題に遭遇したので、解決しました。問題の説明: Mysql ...

HTML でのアンカータグの使用例の共有

アンカータグの使用法:同じドキュメント内の特定の場所にリンクすることをアンカー リンクと呼びます。ア...