問題タブ [proxy-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1218 参照

nginx - proxy_protocol を使用する場合、nginx で CIDR 範囲をブロックするより良い方法は何ですか?

AWS の ELB の背後にある nginx インスタンスの小さなプールがあります。この ELB はインターネットに接続されており、HTTP ではなく PROXY プロトコルを使用します。

これが私の関連セクションですmain.vhost

denyのディレクティブを使用ngx_http_access_moduleして、一連の CIDR ブロックへのアクセスを防止しようとしています。

EG:.conf起動時にnginxによってロードされたファイル内:

dirに/etc/nginx/ip_block/は少なくとも1つのファイルがあります:

ただし、nginx のdenyディレクティブは変数でのみ機能し、$remote_addr変数では機能しないよう$proxy_protocol_addrです。denyこれは事実上、ディレクティブと の両方を一緒に使用できないことを意味しproxy_protocolます。

モジュールを使用して の値をngx_stream_realip_module値に調整できるように見えますが、私が利用できる nginx のビルドは現在、ビルド フラグで構成されていません。現在実行中ですが、ビルドでフラグが導入されたようです( https://github.com/nginx/nginx/commit/fe2774a9d689fa1bf201dd0e89449e3d9e4ad926 )$remote_addr$proxy_protocol_addr--with-stream_realip_module1.10.3with-stream_realip_module1.11.4

オプション 1:必要な機能をコンパイルして、ソースから nginx のバージョンをビルドします。

ディレクティブのドキュメントを見ていると、次のdenyメモが見つかりました。

出典: https://nginx.org/en/docs/http/ngx_http_access_module.html

これは、現在持っているnginxのバイナリで動作する可能性のあるCIDR範囲をブロックするという私の目標を達成するためのより良い方法があるかどうか疑問に思います.

私はこのようなことを試すことができます:

ファイルconf/some_cidr_ranges_to_block.confは次のようになります。

そして、サーバーディレクティブで次のようなことができます:

オプション 2:geoディレクティブとカスタム IP 範囲 -> 「国コード」データベースを使用してトラフィックをブロックしてみます。

私の質問:

0 投票する
1 に答える
1078 参照

kubernetes - Istio はプロキシ プロトコルをサポートしていますか?

Istio はプロキシ プロトコルをサポートしていますか?

TCP 転送とプロキシ プロトコル ("send-proxy" フラグ) を使用して、haproxy の背後にゲートウェイを設定しましたが、機能しません。

Envoy がサポートしていることは知っていますが、Istio はサポートしていないようです。

サポートされていない場合、ソース IP を取得する別の方法はありますか?

ご協力いただきありがとうございます。

0 投票する
3 に答える
1182 参照

python-3.x - Python から AWS ネットワーク ロード バランサーの背後にある場合のクライアント IP

IP で指定されたインスタンスを使用して、ネットワーク ロード バランサーの背後でソケット サーバーを実行すると、...

... それから...

ネットワーク ロード バランサー自体のプライベート IP のように見えるものを出力します。

元のクライアント IP を特定するにはどうすればよいですか?

0 投票する
1 に答える
274 参照

spring-boot - Kubernetes: プロキシ プロトコルを有効にすると Tomcat が例外をスローする

私は今、ちょっと迷っています。Kubernetes クラスターをセットアップし、Spring Boot API と LoadBalancer をデプロイしましたが、問題なく動作しました。ここで、LoadBalancer でプロキシ プロトコルを有効にして実際のクライアント IP を保持したいと考えていますが、これを行うと、Spring Boot API は常に a を返し、400 Bad RequestanIllegalArgumentExceptionがスローされます。

短いスタック トレースを次に示します (IP アドレスをマスクしました)。

Hetzner のhcloud-cloud-controller-managerを使用しています。

ここに私のロードバランサーがあります:

これが私のSpring構成です:

お気づきかもしれませんが、私はすでにこの問題に基づいて転送ヘッダーを有効にしようとしました。

ご協力いただきありがとうございます!

0 投票する
0 に答える
10 参照

load-balancing - vSphere Edge Gateway ロード バランサ プールのプロキシ プロトコル

vSphere Edge ゲートウェイ ロード バランサがリクエストのソース IP を取得し、それをプロキシ プロトコル TCP ヘッダーにラップして、vSphere の「トランスペアレント ロード バランシング」/DSR 機能を使用せずにロード バランサ プール/ターゲットの IP を保持する方法はありますか? ?

仮想サーバーに追加して実際の HAProxy スニペットで構成される「アプリケーション ルール」を定義する可能性を発見しましたが、これらのスニペットはフロントエンド レベルでのみ挿入されるようです (ドキュメントにも記載されています)。 HAProxy 構成。
残念ながら、フロントエンド ディレクティブを介してプロキシ プロトコル インジェクションを構成する可能性は見つかりませんでした。バックエンド ブロックでサーバーに send-proxy-v2 ディレクティブを使用するか、default-server ディレクティブ内でそれを使用することしかわかりませんでした。 defaults/backend ブロックで。

アプリケーション ルール以外の構成オプションを使用するか、フロントエンド内から send-proxy-v2 ディレクティブを構成できる HAProxy 構成トリックを使用して、バックエンド サーバーにプロキシ プロトコルを使用するように vSphere EGW を構成する方法はありますか?

問題の vSphere はバージョン 6.7U3 です