代理与反向代理再学习

来源:互联网 发布:数据分析师工作职责 编辑:程序博客网 时间:2024/04/29 12:30

反向代理指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端。

通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。

反向代理方式和包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力。因此可以结合这些方式提供最佳的安全访问方式。

代理就是你的访问通过一台机器来访问网站。。你是主动的,网站是被动的,网站那里不能得到你的真实ip地址。

反向代理就是是网站通过一台机器发布到公网。。你访问的时候是直接访问那台代理机器的,然后通过那台机器才访问到网站。你无法得到网站的真实ip地址。这样的好处是保护了网站服务器,而且可以通过一个被动代理服务器将很多机器解析到同一ip地址。

有点像路由器的端口映射。。

chinaunix论坛上面摘下来的Q&A

Q:反向代理有什么用?

A:可以降低web服务器的负载,加速客户端浏览。

Q:为什么可以降低web服务器的负载?为什么可以加速客户端的浏览?

A:代理可以缓存一些web的页面,降低了web服务器的访问量,所以可以降低web服务器的负载。

A:web服务器同时处理的请求数少了,响应时间自然就快了;同时代理也存了一些页面,可以直接返给客户端。

Q:代理也是从硬盘中读取缓存页面,为什么代理响应就快?

A:代理在内存中也存放了最常访问的页面。

Q:那把代理的内存、CPU加在web服务器上,由web服务器缓存在内存中不一样吗?

A:代理有专门的机制来做缓存处理。

Q:那web服务器也用代理的机制做缓存不就行了?

A:你自己看看代理的文档吧,要不就去CU问问大侠们。

我的理解是反向代理可以缓存静态页面,或者已转化成静态页面的动态页面,这样的话,未过期的静态页面直接由代理响应,动态页面才交给web服务器响应,就是说,相当于有两台服务器,所以才会加速。

我看到有人把代理和web服务器都放在一台服务器上,怎么也想不通。

1)什么样的页面被cache取决于squid的配置,squid本身无法区分动态页面还是静态页面,由你自己的配置决定.例如默认配置是带?号的和cgi-bin的uri不被cache.

2)php或jsp这样的页面虽然是动态的,但也会被cache--如果你没有设置它们的话.会命中refrech_pattern的'.'这条,所以这里的min时间不要设置成大于0,percent也设置尽量小一点.

3)squid可当作一个纯粹的proxy服务器,squid.conf里可以配置.

4)squid和apache运行在同一个机器当然没有问题,但2者必须bind在不同的IP.cache_peer可以是任何地方,只要不与squid自身冲突.

原创粉丝点击