0
問題はPHPのフィールド$_SERVER['HTTP_CLIENT_IP']
が私の次のサイト構造に設定されていないため、これをどのように修正する必要がありますか? '戻る' という名前(CloudFlareの背後にあるホスト上)ドッカーブリッジネットワーク上のCloudflare/Docker/NGINX/LAMPサイトで失われたクライアントIPアドレスを停止する方法はありますか?
静的IPコンテナ:コンテナ内で実行
- nginxの(172.24.02)
- コンテナ内のApache + PHP( 172.24.0.3)
nginx.conf:
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://172.24.0.3;
}
test.phpを
<?php
echo('HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']);
echo('<br>HTTP_X_FORWARDED_FOR'.$_SERVER['HTTP_X_FORWARDED_FOR']);
echo('<br>REMOTE_ADDR'.$_SERVER['REMOTE_ADDR']);
echo('<br>HTTP_X_FORWARDED'.$_SERVER['HTTP_X_FORWARDED']);
echo('<br>HTTP_FORWARDED'.$_SERVER['HTTP_FORWARDED']);
echo('<br>HTTP_FORWARDED_FOR'.$_SERVER['HTTP_FORWARDED_FOR']);
?>
実行上記の利回り:$ _SERVER変数をプリントアウトの提案を行うための@Devonへ
HTTP_CLIENT_IP:
HTTP_X_FORWARDED_FOR:
REMOTE_ADDR: 172.24.0.2
HTTP_X_FORWARDED:
HTTP_FORWARDED:
HTTP_FORWARDED_FOR:
どのようにNginxとApacheを連携させるように設定しましたか? – Devon
HTTP_CLIENT_IPは標準ヘッダーではなく、REMOTE_ADDRはIPの標準ですが、プロキシの状況ではヘッダーを設定する必要があります。定義されているヘッダーと必ずしも一致しないものを印刷するのではなく、すべてのヘッダー 'print_r($ _ SERVER)'を印刷しないでください。 – Devon
@Devon Apacheは1つのコンテナ内のポート80上で動作しています.nginxは、単に上記の設定でリクエストを転送して、ヘッダを渡します。私は、変数全体を印刷してあなたの提案を試みるつもりです – James