Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 代理背后的CodeIgniter会话_Php_Database_Codeigniter_Session_Proxy - Fatal编程技术网

Php 代理背后的CodeIgniter会话

Php 代理背后的CodeIgniter会话,php,database,codeigniter,session,proxy,Php,Database,Codeigniter,Session,Proxy,如果没有代理IP列表,会发生什么情况?使用Akamai、Google、Edgecast或CloudFront等网站加速服务时;要从他们那里获得会话的IP总是很困难的 在CDN上测试codeigniter应用程序时,我们注意到IP是作为CDN IP传递的,而不是会话数据库中的客户端IP 你怎么能抽出时间来做这件事 /* |-------------------------------------------------------------------------- | Reverse

如果没有代理IP列表,会发生什么情况?使用Akamai、Google、Edgecast或CloudFront等网站加速服务时;要从他们那里获得会话的IP总是很困难的

在CDN上测试codeigniter应用程序时,我们注意到IP是作为CDN IP传递的,而不是会话数据库中的客户端IP

你怎么能抽出时间来做这件事

    /*
|--------------------------------------------------------------------------
| Reverse Proxy IPs
|--------------------------------------------------------------------------
|
| If your server is behind a reverse proxy, you must whitelist the proxy IP
| addresses from which CodeIgniter should trust the HTTP_X_FORWARDED_FOR
| header in order to properly identify the visitor's IP address.
| Comma-delimited, e.g. '10.0.1.200,10.0.1.201'
|
*/
$config['proxy_ips'] = '';

谢谢

根据您使用的web服务器,有一些模块将为您提供HTTP_X_FORWARDED_头中的真实客户端IP地址,或者为您的代理提供等效的IP地址

我在CloudFlare后面的web服务器上使用Nginx,因此我使用以下方法:


您需要为您的web服务器配置模块,以从您的CDN的正确标头中获取真正的客户端IP。

如果您希望在Codeigniter 3中处理IP,而不是在web服务器中,您可以将CDN IP添加到此配置中:

$config['proxy_ips'] = ['10.0.1.2'];
或提供CDN网络掩码:

$config['proxy_ips'] = '10.0.1.0/24';
如果您的服务器始终落后于CDN:

$config['proxy_ips'] = isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : '';

获取IP方法: 如果匹配了代理IP,它将返回转发IP,否则它将返回
$\u SERVER[“REMOTE\u ADDR”]
,这可以获得真正的客户端IP


CDN只提供静态内容,不是吗?如果你仔细想想,cloudflare最近开始支持动态内容,因此我正在考虑这一领域的未来发展,因为它将更常见于从CDN提供动态内容的服务器。。。顺便说一句,cloudflare也会这样做。我还感兴趣的是,您的CDN应该将HTTP_X_FORWARDED_传递给头,头应该具有原始请求者的IP。我相信CI v2.0或更高版本应该已经透明地为您完成了这项工作(请参阅会话库_ip_address()方法)
$this->input->ip_address(); //$this=>CI