AndServer
AndServer copied to clipboard
反向代理到底怎么用的 ?
有教程没有, 看了以前的回答, 完全没有搞懂怎么类比nginx 的反向代理。
mServer = AndServer.proxyServer() .addProxy("www.example.com", "http://192.167.1.11:8080") .port(80) .timeout(10, TimeUnit.SECONDS) .build();
就拿这个代码来说, 我在什么地方访问 www.example.com , 会转发到192.167.1.11:8000, 能详细说明一下吗? 还有配置的80 端口, 这个端口需要配置吗? 我看见好几个网友在问了, 我就再问一次吧。
把问题汇总下
你没理解代理和反向代理。
代理一般用于客户端,是客户端访问目标主机,但不直接连接目标主机,通过一个代理主机连接目标主机,可以隐藏真实客户端或者在客户端不能直接连接目标主机时桥接,访问的地址还是目标主机的地址(访问的还是目标主机)。
反向代理是客户端访问反向代理主机,不访问目标主机也不连接目标主机,反向代理主机会转发请求到目标主机。转发后的目标主机对客户端来说是不感知的,因此这个目标主机是错误的说法,对客户端来说反向代理主机才是目标主机,所以反向代理一般用户服务端来讲的,用于隐藏真实的服务器。
比如客户端访问http://www.yanzhenjie.com
,请求打到了A主机上,但是A主机上部署的AndServer会把这个请求重定向到另一个B主机,B主机的地址是http://192.168.1.18
,客户端收到的内容是B主机的响应,但是客户端并不知道真正响应的主机是B主机,这样针对客户端就把B主机隐藏起来了。
所以AndServer提供了普通Server和反向代理Server能力。然后你再看文档就懂了。
比如客户端访问
http://www.yanzhenjie.com
,请求打到了A主机上
A主机还是要需要开启一个端口。
我觉得代码设计为
AndServer.proxyServer()
.addProxy("www.example.com")
.port(80)
.timeout(10, TimeUnit.SECONDS)
.build();
这样是否更合理?@yanzhenjie
访问A主机(部署AndSever的Android设备)的80端口即为访问了www.example.com
比如客户端访问
http://www.yanzhenjie.com
,请求打到了A主机上A主机还是要需要开启一个端口。
我觉得代码设计为
AndServer.proxyServer() .addProxy("www.example.com") .port(80) .timeout(10, TimeUnit.SECONDS) .build();
这样是否更合理?@yanzhenjie
访问A主机(部署AndSever的Android设备)的80端口即为访问了
www.example.com
不合理。
这个问题先关闭了哈,本身是不存在问题的。你们不理解原理的需要先加深理解。