自动秒收录

nginx反向代理,PHP获取客户端真实ip


文章编号:2357 / 更新时间:2023-12-08 / 浏览:

nginx反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

nginx反向代理PHP获取客户端真实ip

正向代理:实现客户端上网

反向代理:代理访问后端web服务器,

区别:正向代理的对象是客户端,反向代理的对象是服务器端

    server {        listen 80;    server_name www.test.com;     location / {    proxy_pass http://192.9.191.31:80;    proxy_set_header Host $host;      #多级代理需要添加该配置              proxy_set_header X-Real-IP $remote_addr;  #只有1级代理获取客户端真实ip    proxy_set_header X-Forwarded-For $remote_addr;   #多级代理获取客户端真实ip    proxy_http_version 1.1;         #这两个最好也设置,HTTP协议中对长连接的支持是从1.1版本之后才有的    proxy_set_header Connection "";     proxy_redirect off;      proxy_connect_timeout 600;    }         location /forum/ {    proxy_pass  http://192.168.1.52/bbs/test/;    }    #访问http://www.nginx.com/forum/   代理服务器会把url资源替换成http://192.168.1.52/bbs/  对应192.168.1.52的资源路径是/usr/share/nginx/html/bbs/test/index.html    # 注意: 这里的proxy_pass结尾要有/             location   ~* \.(jpg|png|gif)$ {    proxy_pass http://192.168.1.52;    }    #注意: 如果是正则匹配, proxy_pass 的url结尾不能有/ 或者其他的后缀         }

   

proxy_set_header:可以更改或添加客户端的请求头部信息内容,并转发之后端服务器#常用如下: proxy_set_header Host $host;  #添加HOST到报文头部,其值为客户端的URL, proxy_set_header X-Real-IP $remote_addr;   #把客户端ip地址赋值给变量X-Real-IP, X-Real-IP的值是字符串类型; 客户端可以是用户客户端或代理服务器    proxy_set_header X-Forwarded-For $remote_addr;    # #把客户端ip地址赋值给变量X-Forwarded-For, X-Forwarded-For的值是一个列表,客户端可以是用户客户端或代理服务器 proxy_set_header Connection ""; proxy_connect_timeout :配置nginx服务器与后端服务器尝试建立连接的超时时间,默认为60秒proxy_http_version:用于设置nginx提供代理服务的HTTP协议的版本:proxy_redirect off;四、PHP获取客户端IP地址方式

1、如果没有使用代理服务器

    REMOTE_ADDR = 客户端IP            HTTP_X_FORWARDED_FOR = 没数值或不显示        $ip = $_SERVER['REMOTE_ADDR'];       REMOTE_ADDR = 最后一个代理服务器 IP

2、使用透明代理

    HTTP_X_FORWARDED_FOR = 客户端真实 IP (经过多个代理服务器时,这个值类似:221.5.252.160, 203.98.182.163, 203.129.72.215)

这类代理还会将客户真实ip发送到请求对象,无法隐藏真实ip。

    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

3、使用普通匿名代理服务器

    REMOTE_ADDR = 最后一个代理服务器 IP        HTTP_X_FORWARDED_FOR = 代理服务器 IP (经过多个代理服务器时,这个值类似:203.98.182.163, 203.98.182.163, 203.129.72.215)

这样就隐藏了客户端的真实ip,但服务器会知道客户端是通过代理服务器去访问的。

4、使用欺骗性代理服务器

    REMOTE_ADDR = 代理服务器 IP            HTTP_X_FORWARDED_FOR = 随机的 IP(经过多个代理服务器时,这个值类似:220.4.251.159, 203.98.182.163, 203.129.72.215)

5、使用高匿名代理

    REMOTE_ADDR = 代理服务器 IP           HTTP_X_FORWARDED_FOR = 没数值或不显示

使用这种代理时,不同浏览器不同设备会返回不同的ip头信息,因此PHP使用$_SERVER["REMOTE_ADDR"] 、$_SERVER["HTTP_X_FORWARDED_FOR"] 获取的值可能是空值也可能是“unknown”值。


相关标签: nginx反向代理服务器蜘蛛技巧超级蜘蛛查

本文地址:https://www.badfl.com/article/e07d9e8322424228cd08.html

上一篇:搜索引擎蜘蛛是怎样抓取网页的如何吸引更多...
下一篇:怎样保持网站被百度秒收录...

发表评论

温馨提示

做上本站友情链接,在您站上点击一次,即可自动收录并自动排在本站第一位!
<a href="https://www.badfl.com/" target="_blank">自动秒收录</a>