反向代理初探

技术宅 rainforest 9年前 (2011-04-03) 2209次浏览 3个评论

代理服务器,想必大家都用过。代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式,使用代理上网可以节约紧缺的IP地址资源,而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的攻击。但是,如果想让互联网上的主机访问内部网的主机资源(例如:Web站点),又想使内部网主机免受外部网主机攻击,一般的代理服务是不能实现的,需要使用反向代理来实现。

什么是方向代理呢?其实,反向代理可以理解为Web服务器加速,但也不能纯粹这么理解。如果你要了解Web服务器加速,请Google搜索CDN。反向代理是一种通过在繁忙的Web服务器和Internet之间增加一个告诉的Web缓冲服务器来降低实际的Web服务器的负载。

反向代理的结构图,如下图所示:

image

反向代理服务器是针对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清楚后台 WEB 服务器是如何组织架构的。当互联网用户请求 WEB 服务时,DNS 将请求的域名解析为反向代理服务器的 IP 地址,这样 URL 请求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台 WEB 服务器交互。利用反向代理服务器减轻了后台 WEB 服务器的负载,提高了访问速度,同时避免了因用户直接与 WEB 服务器通信带来的安全隐患。

目前有许多反向代理软件,比较有名的有 Nginx 和 Squid 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

另外,我不得不讲反向代理的另外一个作用,就是翻墙。加入的你的网站是使用国外的服务器,然后还被墙掉的话,反向代理是一个不错的选择,当然你的反向代理必须在国外的服务器上,且不被墙掉。

下面来讲讲我的需求,实验室有一个Web服务器,域名是wisdom.dlut.edu.cn,但是不巧的是,是在教育网的Ip下,有的地方(尤其是国外)根本无法想到。曾经有人提出来要用虚拟主机来解决,可是毕竟用虚拟主机的话,毕竟要花钱了,而且也不能保证网站的响应速度。所以我们得另辟蹊径。

后来,当我看到反向代理的时候,我觉得我们这个问题,可以用反向代理来解决。如何部署这个反向代理,部署到什么地方呢?想来想去,觉得Google的GAE不错。我上网找了找,找到了一个运行在GAE上的反向代理:bs2grproxy。我下载了一个,配置很简单,然后部署了上去,dlutwisdom.appspot.com,发现根本无法访问。原因是GAE也被墙掉了。后来我想也许是域名被墙掉了,所以我就想着给这个GAE加一个域名。我上co.cc注册了一个域名smallbridge.co.cc。按照Google的提示,我给GAE上的反向代理注册了一个域名wisdom.smallbridge.co.cc。但是发现还是不能访问,其原因是ghs.google.com也墙掉了。

上网上查找了解决办法,发现网上有些地方提供的ghs.google.com的替代解析,具体我就不细说了,大家可以上网上搜。经过这样一弄,wisdom.smallbridge.co.cc终于可以访问了。其实如果只对于在国外的朋友,最后一个GAE翻墙的过程可以省略。

 

更新:ghs.google.com替代服务器

any-in-2015.1e100.net
ghs.3322.org


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:反向代理初探
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. @verypecy
    any-in-2015.1e100.net
    不用设置,直接将域名cname指向即可
    请不要发布不和谐内容,以免大家都遭殃,谢谢你的合作
    小桥流水2011-04-11 03:13 回复
  2. 你好,请问的你的域名CNAME值填写的是什么?我原来用的是ghs.you8g.com 最近发现不能用了。你的这个网站是用的什么服务器解析的。
    谢谢!
    verypecy2011-04-11 01:50 回复
  3. 谢谢
    verypecy2011-05-18 03:45 回复