問題タブ [real-ip]
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.
php - nginxの実際のクライアントIPが機能しない
nginx、php7、および http_realip_module がインストールされています。
2 つの Web サイトにサービスを提供する 1 つのサーバーがあります。
サイト 1 nginx 構成:
これにより、$_SERVER['REMOTE_ADDR"] をダンプするときにクライアントの IP アドレスが入力されます。
サイト 1 は、単純な API のように curl を使用してサイト 2 に接続します。
サイト 2 nginx 構成:
サイト 2 のスクリプトが呼び出されることがわかりますが、PHP で $_SERVER['REMOTE_ADDR'] 変数を確認すると、クライアントの IP アドレスではなく、サーバーの IP アドレスが表示されます。ここでnginxのセットアップは正しいですか?
どうすればこれを正しく動作させることができますか?
nginx - nginx 許可|拒否 $realip_remote_addr
nginx を使用すると、範囲と IP を許可および拒否できます ( https://www.nginx.com/resources/admin-guide/restricting-access/ )。realip モジュールを使用すると、使用する ip を cloudflare の後で実際の ip に変更できます。( http://nginx.org/en/docs/http/ngx_http_realip_module.html )
ここで、Cloudflare または localhost 以外の IP をブラックリストに登録したいと思います。これはかなり難しいことがわかりました.real_ipモジュールのセットアップを設定する前にそれを入れてみましたが、葉巻はありません.
これはまったく可能ですか?ユーザーが cloudflare を使用していない場合、これは欠陥のように思えます。これにより、特定の vhost に対するより多くの悪用が可能になります。
$realip_remote_addr 変数がありますが、通常の $remote_addr の代わりに許可/拒否を使用する方法を見つけることはできません。
編集:ファイアウォールがこれを支援できることに注意を向けました。残念ながら、これは本当にいくつかの仮想ホストにしか必要ありません。
ios - swift または ObjC で IPv4 と IPv6 に対して個別の DNS 要求を行う方法はありますか
私がこれまでに持っているものは次のとおりです。
}
ただし、コールバックは呼び出されません。コンソールに次のエラーが表示されます: TIC Read Status [9:0x0]: 1:57 ObjectiveC is not my power but I had to mess with it. どんな助けでも大歓迎です。
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_module
1.10.3
with-stream_realip_module
1.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 範囲 -> 「国コード」データベースを使用してトラフィックをブロックしてみます。
私の質問: