当前位置: 首页 > news >正文

揭阳专业网站制作公司网站建设销售工资多少

揭阳专业网站制作公司,网站建设销售工资多少,网站建设工程属于科技档案吗,关于网站建设论文的结束语场景描述: 访问路径: A机器 - > B机器的 ->C虚拟机 : A机器为客户端用户,本地地址为 192.168.0.110 B机器为服务端反向代理服务器 本地地址为192.168.0.128 –>(192.168.56.1) C机器为B主机安…

场景描述:

访问路径: A机器 - > B机器的 ->C虚拟机 :

A机器为客户端用户,本地地址为 192.168.0.110

B机器为服务端反向代理服务器 本地地址为192.168.0.128 –>(192.168.56.1)

C机器为B主机安装的linux虚拟机,并安装了nginx ,本地ip为**(192.168.56.10)**

从侧面反映了反向代理的好处,直接从A是无法访问C的,但是在B中做了反向代理 ,就能访问了,保护了服务端的地址。而无法将C的ip暴露给客户端A

注意:在B和C直接由于使用了虚拟机,虚拟机的网关的ip为192.168.56.1 所以 在C端取到的上一层ip为192.168.56.1

目的: 在C机器取到 A的ip地址,并输出日志客户端的真实ip为192.168.0.110

B机器的nginx 配置:(首层代理)

 location /bb/ {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;proxy_pass http://192.168.56.10/cc/;}

在B中的nginx 中 给请求设置了 header 。 X-Real-IP 和 X-Forwarded-For

X-Real-IP 取得值是 r e m o t e a d d r ,而 remote_addr ,而 remoteaddr,而remote_addr为与主机B直连客户端A 的ip地址。

X-Forwarded-For 取得值是个用逗号分隔得多个值,主要包括客户端X-Forwarded-For的值 与 $remote_addr 的值,两部分用逗号分隔。

所以此时 X-Real-IP 为 192.168.0.110, X-Forwarded-For 为 ,192.168.0.110 此时客户端并未主动传 X-Forwarded-For 头。

  • proxy_set_header X-Real-IP $remote_addr; 这句的作用是将客户端的IP地址赋值给X-Real-IP请求头,$remote_addr变量表示与nginx服务器直接连接的客户端或代理服务器的IP地址。这句一般用于第一层代理服务器,以便后续的代理服务器能够获取到客户端的IP地址。
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 这句的作用是将客户端请求头中的X-Forwarded-For和 r e m o t e a d d r 两部分用逗号分隔后赋值给 X − F o r w a r d e d − F o r 请求头, remote_addr两部分用逗号分隔后赋值给X-Forwarded-For请求头, remoteaddr两部分用逗号分隔后赋值给XForwardedFor请求头,proxy_add_x_forwarded_for变量表示客户端请求头中的X-Forwarded-For和$remote_addr两部分。这句一般用于非首层代理服务器,以便将客户端和所有经过的代理服务器的IP地址都记录下来。

C中nginx 输出的log-format

   log_format main '$http_x_forwarded_for|$realip_remote_addr|$http_x_real_ip|$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for" ''$upstream_addr $request_time $upstream_response_time ';

C中nginx的配置

http {include       /etc/nginx/mime.types;default_type  application/octet-stream;proxy_set_header        X-Real-IP       $remote_addr; proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;#   real_ip_header X-Forwarded-For;#   set_real_ip_from 192.168.56.1;#   real_ip_recursive on;
}

在这一层中 X-Real-IP 取到的是上层代理的地址,也就是192.168.56.1

X-Forwarded-For 是上两层的地址?192.168.0.110,192.168.56.1 (这一层其实就一个值还是192.168.0.110,在下一层才是这两个值,这里有些歧义,原因是这一层接收到值之后 还没有拼接本层获取上一层的地址。这一层只是待发送状态。proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for 这个是将头拼接后发给下一层的。所以在下一层取到地址才是 192.168.0.110,192.168.56.1

所以在c中的输出日志中打印的值为

192.168.0.110|192.168.56.1|192.168.0.110|192.168.56.1 - - [15/Sep/2023:02:32:43 +0000] "GET /cc/ HTTP/1.0" 200 15539 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "192.168.0.110" 123.121.155.167:16002 0.326 0.326

如果我使用nginx自带的模块 realip 再固定一层,重点观察$remote_addr的值

http {include       /etc/nginx/mime.types;default_type  application/octet-stream;proxy_set_header        X-Real-IP       $remote_addr;proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;real_ip_header X-Forwarded-For;set_real_ip_from 192.168.56.1;real_ip_recursive on;
}

如果我将配置改成这样,我们再来观察一下日志输出

192.168.0.110|192.168.56.1|192.168.0.110|192.168.0.110 - - [15/Sep/2023:02:46:38 +0000] "GET /cc/ HTTP/1.0" 200 15539 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "192.168.0.110" 123.121.155.167:16002 0.796 0.796

上述描述只是两层代理,为了测试出 X-Forwarded-For 的值,我们设置了3层代理。

A -》B-》c-》d

A:192.168.0.110 B:192.168.0.104 C:192.168.0.128(192.168.56.1) D:192.168.56.10

B nginx 配置:

location /testIp/ {# set $current-X-Fowarded-for X-Forwarded-For proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;proxy_pass http://192.168.0.128:6666/testIp/;}

C nginx配置:

 location /testIp/ {# set $current-X-Fowarded-for X-Forwarded-For proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://192.168.56.10/testIp/;}

D nginx 配置:

http {include       /etc/nginx/mime.types;default_type  application/octet-stream;proxy_set_header        X-Real-IP       $remote_addr;proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;# real_ip_header X-Forwarded-For;#  set_real_ip_from 192.168.56.1;#  real_ip_recursive on;.....localtion /testIp/ {porxy_pass  http://666.com}}

D 中nginx的日志

192.168.0.110, 192.168.0.104|192.168.56.1|192.168.0.104|192.168.56.1 - - [15/Sep/2023:03:26:30 +0000] "GET /testIp/ HTTP/1.0" 200 15539 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "192.168.0.110, 192.168.0.104" 192.168.0.104:82 0.299 0.299

192.168.0.110, 192.168.0.104 是输出的X-forwarded-for 的值。

   real_ip_header X-Forwarded-For;set_real_ip_from 192.168.56.1;real_ip_recursive on;

这三个值一般是加到最后的D中,为了设置授信ip为上层的remot_addr的值,

  • set_real_ip_from:用于设置信任的 IP,即请求头中的 IP 中 nginx 认为可信的 IP。一般是前几层代理的 IP。
  • real_ip_header:用于告诉 nginx 从哪个请求头字段中获取客户端真实的 IP。一般是 X-Forwarded-For 或 X-Real-IP。
  • real_ip_recursive:用于控制 nginx 如何从请求头字段中获取多个 IP 中的一个。当值为 on 时,nginx 会从右往左排除信任的 IP,取最后一个非信任的 IP 作为客户端真实的 IP。

例如,如果您想从 X-Forwarded-For 字段中获取客户端真实的 IP,并且信任 192.168.56.1 这个 IP,您可以在 location 中添加以下代码:

location /test {proxy_pass http://backend;real_ip_header X-Forwarded-For;set_real_ip_from 192.168.56.1;real_ip_recursive on;
}

这样,nginx 就会把 X-Forwarded-For 字段中最后一个非 192.168.56.1 的 IP 赋值给 $remote_addr 变量,作为客户端真实的 IP。

对于nginx 获取客户端真实ip做个总结

  • 对于首层代理服务器,使用proxy_set_header X-Forwarded-For $remote_addr;来将客户端IP赋值给X-Forwarded-For请求头
  • 对于非首层代理服务器,使用proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;来将客户端请求头中的X-Forwarded-For和$remote_addr两部分用逗号分隔后赋值给X-Forwarded-For请求头
    ursive on;
    }
    这样,nginx 就会把 X-Forwarded-For 字段中最后一个非 192.168.56.1 的 IP 赋值给 $remote_addr 变量,作为客户端真实的 IP。

对于nginx 获取客户端真实ip做个总结

对于首层代理服务器,使用proxy_set_header X-Forwarded-For $remote_addr;来将客户端IP赋值给X-Forwarded-For请求头

  • 对于非首层代理服务器,使用proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;来将客户端请求头中的X-Forwarded-For和$remote_addr两部分用逗号分隔后赋值给X-Forwarded-For请求头
  • 如果有多层代理服务器,可以使用nginx的realip模块来从XFF中抛弃指定的可信IP,从而获取用户真实IP
http://www.15wanjia.com/news/180057.html

相关文章:

  • 网站建设开发熊掌号长沙app软件制作
  • 建个网站 费用wordpress更改固定链接页面打不开
  • 自己的网站怎么做排名广东专业网站优化制作公司
  • 网站制作详情wordpress 添加悬浮窗
  • 网站建设实习目的免费公网网站建设
  • 宁波易通宁波网站建设关键词挖掘工具爱站网
  • 网站开发过程中感想什么是网站模板
  • 比较好的网站开发服务商广告策划书前言范文
  • 淄博网站的建设做食品网站有哪些内容
  • 怎么做卡商网站网站搭建徐州百都网络搭建
  • 巴中哪里做网站成功案例 网站
  • 西安建站模板厂家惠阳市网站建设
  • 购物网站建设基本流程树状图做wordpress模板赚钱
  • asp.net当前网站路径漯河网站建设 付永磊
  • 网站加强阵地建设与管理微信店铺小程序开发教程
  • 3030wa网站开发学校潍坊市高新区建设局网站
  • 做外单的网站新机发布最新消息
  • 厦门网站关键词推广网站被k有什么表现
  • 衡水做网站技术关于网站建设的折页广告
  • 自己做网站都要什么软件餐饮最有效的营销方案
  • 做电影网站的服务器做网站图片大会导致慢
  • 简述商业网站建设的流程共享门店新增礼品卡兑换模式
  • 如何进入网站管理页面苏宁易购网站风格
  • 永久网站建设教程建设网站需要设备
  • 网站没有备案怎么做支付四川微信网站建设推
  • 网站建设 合作协议最新的产品代理有哪些
  • 网站怎么做社区营销西宁电商网站制作公司
  • 创建全国文明城市总结关键词排名优化品牌
  • 网站代理建设wordpress设置jetpack失败
  • 网站管理工作总结有源码就可以自己做H5网站吗