请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正向代理问题

老师 有个问题想问下:
我有一台电脑A 和 由电脑A的vmware打开的虚拟机B 以及 云服务器C。
正在学的是nginx正向代理。
配置如下:
A的ip:175.7.73.x(公),192.168.2.105(局域网ip)
B的ip:192.168.2.107(局域网ip),作为代理正向代理服务器。
C的ip:47.106.132.x(公),  配置了访问限制,仅http_x_forwarded_for值为175.7.73.x的请求访问。
问题是:
打开A的浏览器,配置代理服务器为192.168.2.107:80,输入地址:47.106.132.x
访问到的是B的nginx页面,而不是C的。
是不是这3台机器在理论上不能完成正向代理呢?

正在回答

3回答

你好,这种正向代理模式是可以的,你应该问题出在别的地方。

所以检查下你的配置看看是否正确,可以都贴出来描述我看看,理论上就算访问不到c服务器的页面也不应该出现B的正常页面。

另外,你也要看下B服务器的日志,包括access.log和error.log

最后,也看下C服务器的日志

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉2138032093 #1
    老师 我更新了问题插图 有空帮忙看下 谢谢
    回复 有任何疑惑可以回复我~ 2018-04-20 16:31:28
  • 提问者 慕粉2138032093 #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-04-21 17:01:16
Jeson 2018-04-21 13:29:08

你好,看看“服务器log”,你配置的nginx配置的日志格式,会将你的“http_x_forwarded_for”打印出来,能看到http_x_forwarded_for的内容为“-”也就是为空。 所以,你正向代理配置的是正确的,但是不能用http_x_forwarded_for来进行防控策略,原因是你虽然走了正向代理,但是正向代理的模式,并不会去改写xforward的信息,而是直接通过正向代理去访问服务端。这个理解吧? 

如果想要实现生效,建议你可以采取两种方式来作: 

1、将服务器端配置防控改用基于remote_addr变量的方式来进行正则匹配。 

2、或者修改正向代理服务器,手动添加变量: proxy_set_header X-Real-IP $remote_addr; 然后在服务端添加针对X-Real-IP的访问限制


0 回复 有任何疑惑可以回复我~
提问者 慕粉2138032093 2018-04-20 16:25:09

我的配置如下:

本地nginx.conf

https://img1.sycdn.imooc.com//szimg/5ad9a1f30001fa5d06330625.jpg

本地server.conf

https://img1.sycdn.imooc.com//szimg/5ad9a21800018eb404550412.jpg


云服务器nginx.conf

https://img1.sycdn.imooc.com//szimg/5ad9a2800001fd6506210606.jpg

云服务器server.conf

https://img1.sycdn.imooc.com//szimg/5ad9a2b00001b33305000453.jpg

浏览器代理:

https://img1.sycdn.imooc.com//szimg/5ad9a2d90001985508840531.jpg


访问页面:

https://img1.sycdn.imooc.com//szimg/5ad9a309000142e912920177.jpg


本地log:

192.168.2.105 - - [21/Apr/2018:00:05:00 +0800] "GET http://47.106.132.*/ HTTP/1.1" 403 571 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" "-"

服务器log:

175.7.73.* - - [20/Apr/2018:16:05:06 +0800] "GET / HTTP/1.0" 403 571 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" "-"

访问时没有错误日志出现

0 回复 有任何疑惑可以回复我~
  • Jeson #1
    你好,看看“服务器log”,你配置的nginx配置的日志格式,会将你的“http_x_forwarded_for”打印出来,能看到http_x_forwarded_for的内容为“-”也就是为空。
    
    所以,你正向代理配置的是正确的,但是不能用http_x_forwarded_for来进行防控策略,原因是你虽然走了正向带来,但是正向代理的模式,并不会去改写xforward的信息,而是直接通过正向代理去访问服务端。这个理解吧?
    
    如果想要实现生效,建议你可以采取两种方式来作:
    1、将服务器端配置防控改用基于remote_addr的方式来进行正则匹配。
    2、或者修改正向代理服务器,手动添加变量:
     proxy_set_header        X-Real-IP $remote_addr;
    然后在服务端添加针对X-Real-IP的访问限制
    回复 有任何疑惑可以回复我~ 2018-04-21 13:27:49

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信