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カーソルの詳細な紹介

推薦する

MySQL5.6.17データベースをインストールするときにMy.iniファイルを構成する方法

最近、プロジェクトの開発時に MySql データベースを使用しました。MySql に関する記事をいく...

XHTML の一般的な構造タグ

構造本文、見出し、HTML、タイトル文章abbr、頭字語、アドレス、引用ブロック、br、引用、コード...

ウェブページ作成における絶対パスと相対パスの違い

1. 絶対パスまず、ローカル コンピューターでは、ファイルの絶対パスは、当然、ハード ディスク上でフ...

XHTML コードで Marquee タグを使用する方法

フォーラムで、ネットユーザーの jeanjean20 が、Marquee を標準に適合させる方法につ...

Linux運用保守ツールSupervisor(プロセス管理ツール)のインストールと使用

1. はじめにSupervisor は Python で開発された汎用プロセス管理プログラムです。通...

jQueryはすべてのショッピングカート機能を実装します

目次1. すべて選択2. 商品の数量を増やすか減らす3. 商品の小計を変更する4. 合計と合計額を計...

W3C チュートリアル (10): W3C XQuery アクティビティ

XQuery は、XML ドキュメントからデータを抽出するための言語です。 XQuery は、XML...

Vue-Element-Adminはログインジャンプを実現するために独自のインターフェースを統合しています

1. まずリクエスト設定ファイルを見て、axios.createメソッドを見てください。baseUR...

Flex レイアウトで適応型ページを作成する (構文と例)

Flex レイアウトの紹介英語の Flex はフレキシブル ボックス、つまり伸縮性のあるボックスを...

さまざまなブラウザでのhrタグの説明

通常、人事担当者と会うことはめったにありませんが、一度会うと、それが生死を分けることもあります。 H...

MySQL 8.0.22.0 のダウンロード、インストール、設定方法のグラフィックチュートリアル

MySQL 8.0.22のダウンロード、インストール、設定方法、参考までに具体的な内容は次のとおりで...

VMware ワークステーションの仮想マシンの互換性の問題に対する解決策

VMware ワークステーションの仮想マシンの互換性の問題を解決するにはどうすればよいですか?ノート...

CSS 動的高さ遷移アニメーション効果の実装

この質問は、Nuggets のメッセージから生まれました。友人が、次のコードの高さ遷移アニメーション...

MySQL 文字列分割操作 (区切り文字を含む文字列のインターセプション)

区切り文字なしの文字列抽出質問の要件データベース内のフィールド値:実装効果: 1行のデータを複数行に...

CSS の両端揃えを実現する div+css レイアウトの 4 つの方法の概要

2 端揃えを実現する div+css レイアウトは、Web ページの組版でよく使用されます。この記事...