Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29307582
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2009-12-08 21:51:36

整理相关资料。
相关术语:
Reverse Proxy 反向代理
反向代理指以代理来接受internet上的连接请求,然后将请求转发给内部上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端。

1.什么是正向代理和正向代理服务器?

正向代理就是通常所说的代理,是某台电脑通过一台服务器来上Internet网的这种方式,其中这台电脑就叫客户机,这台服务器就叫正向代理服务器也就是通常所说的代理服务器。在这种方式中,你是主动的,网站是被动的,网站那里不能得到你的真实ip地址。(通俗讲法)

正向代理服务器。它只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器(一般在IE-Internet选项-连接-局域网设置),并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。

理解:正向代理就是客户机通过一台代理服务器连接上WWW

2.什么是反向代理和反向代理服务器?

反向代理就是网站通过一台服务器发布到公网,供用户访问。用户直接访问那台反向代理服务器,然后通过那台服务器访问到网站。用户无法得到网站的真实 IP地址。这样就保护了网站服务器,如果您有台服务器在国内又不想让人找到IP,就可以在国外搭建一台反向代理服务器。一个反向代理服务器将很多网站解析 到同一ip地址上。(通俗讲法)

技术讲法,普通的Web代理服务器是不支持外部对内部网络的访问请求的。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务此时的代理服务器称为反向代理服务器不太明白?), 对外表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数 据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的 安全性。

(我的理解:反向代理服务器对网民来讲就是一台WEB服务器了 其后端会有多台的WBE服务器真实地存储了相关的数据包括静态网页与CGI程序在上面!)

反向代理用于外部网络访问内部网络时使用,正向代理用于提供内部网络对外部网络的访问能力,并可以使用包过滤拒绝其他方式访问外部网络。


示例:

反向代理服务器也称为WEB加速服务器,它位于WEB 服务器的前端,充当WEB 服务器的内容缓存器。来降低实际的WEB服务器的负载。系统结构如下图

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

(如果要实现网站的互联互通技术的话还要考虑前端DNS解析是否正常即来自电信的用户是不是能够正常解析到电信的反向代理服务器上面了。因为用户只能看到代理服务器的IP的!)

目前有许多反向代理软件,比较有名的有 Nginx Squid 。其他还包括Socks、Apache、Jigsaw、Delegate等。

(Nginx是一款主流的反向代理软件了!)

Squid反向代理服务器位于本地 WEB 服务器和 Internet 之间 , 组织架构如下图

客户端请求访问 WEB 服务时,DNS 将访问的域名解析为 Squid 反向代理服务器的 IP 地址,这样客户端的 URL 请求将被发送到反向代理服务器。如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

Squid 反向代理一般只缓存可缓冲的数据(比如 html 网页和图片等),而一些 CGI 脚本程序或者 ASP、JSP 之类的动态程序默认不缓存(有兴趣的可以参考一下IIS服务器与RESIN服务器的缓存配置策略可以适当地缓存动态数据)。它根据从 WEB 服务器返回的 HTTP 头标记来缓冲静态页面。有四个最重要 HTTP 头标记:

    ●Last-Modified: 告诉反向代理页面什么时间被修改
    ●Expires: 告诉反向代理页面什么时间应该从缓冲区中删除
    ●Cache-Control: 告诉反向代理页面是否应该被缓冲
    ●Pragma: 用来包含实现特定的指令,最常用的是 Pragma:no-cache

Squid 是一个开源的软件,利用它的反向代理技术可以提高网站系统的访问速度。本文在真实的网络环境下,利用三台 squid 反向代理服务器加速了网站的性能,同时结合 DNS 轮询技术实现了网站的负载均衡。经过一段时间的测试和试运行,该网站的访问速度和可用性方面都有很大的提高,从未出现过网站服务中断情况。

(F5 + Squid + resin/iis/apache)一样能够实现同样的功能!


2、双机热备 摘自:

问:能解释一下什么是双机热备吗?
    答:所谓双机热备,就是将中心安装成互为备份的两台,并且在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会迅速的自动启动并运行(一般为2分钟左右),从而保证整个系统的正常运行!双机热备的工作机制实际上是为整个网络系统的中心服务器提供了一种故障自动恢复能力。

问:什么时候需要双机热备呢?
    答:这个问题其实比较简单,一般服务器要长年累月的工作,其备份工作就绝对少不了。所以,决定是否使用双机热备,笔者觉得应首先对系统的重要性,以及终端用户对服务中断的容忍程度进行考虑,然后再来决定是否使用双机热备。比如网络中的用户最容忍多长时间恢复服务?如果服务不能很快恢复会造成什么样的后果等等。

问:已经采取了RAID技术和数据备份技术,还有必要做双机热备吗?
    答:这其实没有个明确的区分,RAID和数据备份都同等重要!数据备份只能解决系统出现问题后的恢复;而RAID技术,以笔者的使用经验来看又只能解决的问题。我们知道,当服务器本身出现问题时,不论是设备的硬件问题还是系统的问题,都会造成服务的中断,而RAID及数据备份技术恰恰就不能解决避免服务中断的问题。所以,对于高需求、持续可靠的提供应用服务的网络系统来说,双机热备还是非常重要的。其实我们可以这样想:如果你的服务器坏了,你要用多少时间将其恢复到能正常工作?这样你就能理解双机热备的重要性了!

问:双机热备方案与集群的区别?
    答:从概念上来讲,双机热备属于集群中的一种。集群一般包括两类:一类是纯应用服务器的集群,即各个应用服务器都访问统一的数据库服务器,但彼些并不需要文件共享等,这种集群是比较简单的。另一类是数据库服务器的双机热备,这种双机热备实现,一般是两台服务器同时使用共享的存储设备,并且在普遍的情况下,均采取主、备的方式(也有高端的系统采用并行的方式,即两台服务器同时提供服务)。

问:数据库服务如何使用双机热备?
    答:通过软件方式实现双机热备。即不采用共享的存储设备,而是本机数据可以直接在多台主机间流动。显而易见,此种方式最大的优点就是节约了昂贵的存储设备 投资,而其缺点也不难发现:会产生数据的前后不一致、或者会影响数据库读取的速度。我们看看这样一个例子:如果在服务中断时切换到备份服务器,则可能有少 量已经在主机完成的事务在备机上尚未实现。而与备份数据的恢复不同,备机启动后,后面的操作已经进行,因此丢失的数据包要找回就相当难。故此种方式适用于 对于丢失少量数据不是非常敏感的系统。

    在这儿提一下标准的解决方法,即基于共享存储设备和双机软件实现双机热备。它可以在无人值守的情况下提供快速的切换,并且不会有数据丢失现象,而购买存储设备等投资也会比较高。

3、HTTP请求头

一个请求由四个部分组成:请求行、请求头标、空行和请求数据

1.请求行:请求行由三个标记组成:请求方法、请求URI和HTTP版本,它们用空格分隔。
例如:GET /index.html HTTP/1.1

2.请求头标:由关键字/值对组成,每行一对,关键字和值用冒号(:)分隔。 请求头标通知服务器有关于客户端的功能和标识,典型的请求头标有:

User-Agent        客户端厂家和版本
Accept            客户端可识别的内容类型列表
Content-Length    附加到请求的数据字节数    (这个是必选吗?N

3.空行:最后一个请求头标之后是一个空行,发送回车符和退行,通知服务器以下不再有头标。
4.请求数据:使用POST传送数据,最常使用的是Content-Type和Content-Length头标。













阅读(1263) | 评论(1) | 转发(0) |
0

上一篇:缓存的三个问题分析

下一篇:SVN学习摘要

给主人留下些什么吧!~~

hkebao2009-12-09 08:35:21

反向代理服务器能够配置自己的规则让请求重定向到指定的后端URL上面去。服务器架构层: nginx/haproxy squid server 还可以借助F5实现负载均衡轮询