反向代理 原理 负载 缓存 蜀道文学 网站反向代理

    有些网站因为一些因素,比如想把网站的数据源隐藏起来,让外界通过域名确定不了网站的ip,当然,这是指一般情况,一定要找到的话也是有办法的。

    原理介绍:

    比如有A和B两个服务器,都在公网上,网站的数据全部在B服务器上,为了防止B服务器受到攻击或者网站被挂马,就想把B服务器保护起来,这时,就可以用A服务器做代理服务器,域名指向A,但是A上并没有网站原始数据,用户访问网站的时候,通过域名请求到A服务器,A服务器将请求去发到B服务器,拿到B服务器返回回来的结果后,A服务器将数据做修改,网页的头信息等等,修改完成后再返回给用户,用户就看到结果了。

    如果两台服务器之间的网速不是太快的话,肯定会对用户的感受有一定的影响,等待的时间会稍长,这时,就有另一个技术出现了,数据缓存,就是A服务器将请求过的数据缓存到自己本地,有两种模式,内存缓存和硬盘缓存,内存缓存肯定要更快,用户体验会更好,但是内存受大小的限制,对于数据大的网站来说,不太现实,就只能是硬盘缓存了,当然,两种缓存也是可以结合的。缓存也有他的弱点,就是数据更新周期,比如一个页面,B服务器上的已经更新了,但是你访问域名到A服务器时,A上边可能有这个页面的缓存,这时A会将缓存的,旧的数据发给用户,就存在一个时间差问题,可以设置一个缓存周期,比如一小时,那么A服务器缓存此页面到一个小时的时候,你再去访问,A就会重新去请求B而拿到新的数据,并将新一点的数据缓存到本地。

 

    实现:

    目前开源的项目有apache http server,可以实现此功能,并且配置不复杂,在A服务器上安装apache服务器,

   apache服务器去这里下载:http://www.apache.org/

    默认安装完就可以,然后修改apache安装目录下conf/httpd.conf 文件,打开要用到的两个模块:
mod_proxy.so(module_proxy)
mod_proxy_http.so(module_proxy_http) 

搜索到这两个模块的行,将行最前边的“#”删除就可以了

 

然后 在文件的最后添加:

 

<VirtualHost 127.0.0.1>
ServerName http://www.shudaowenxue.com/
ProxyPass / http://www.iduxs.com/
ProxyPassReverse / http://www.iduxs.com/
</VirtualHost>
127.0.0.1  代表监听所有发到此服务器80端口的请求,如果服务器是多ip,也可以配置使用其中的一个ip
ServerName http://www.shudaowenxue.com/      要访问的域名,也就是你想让用户访问你网站的域名,此域名指向A服务器
ProxyPass / http://www.iduxs.com/  要转发的地址,就是你网站的所在服务器(B服务器),也可以是B服务器的ip
ProxyPassReverse / http://www.iduxs.com/ 同上一行。
修改完后记得保存,然后一定要记得重启apache服务器,这时你可以访问一下试试了。
好了,先写这么多吧,缓存的实现下次再来补。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值