文档章节

利用 squid 反向代理提高网站性能

xinson
 xinson
发布于 2014/06/20 11:52
字数 1134
阅读 36
收藏 1
点赞 0
评论 0

本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了网站的负载均衡,从而提高了网站的可用性和可靠性。

现在有许多大型的门户网站如 SINA 都采用 squid 反向代理技术来加速网站的访问速度,可将不同的 URL 请求分发到后台不同的 WEB 服务器上,同时互联网用户只能看到反向代理服务器的地址,加强了网站的访问安全。

反向代理的概念

反向代理服务器又称为 WEB 加速服务器,它位于 WEB 服务器的前端,充当 WEB 服

务器的内容缓存器。其系统结构如图 1

图 1. 系统结构


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

Squid 反向代理的实现原理

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

Squid是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持HTTP,HTTPS,FTP 等多种协议,是现在 Unix 系统上使用、最多功能也最完整的一套软体。

下面将重点介绍 Squid 反向代理的实现原理和在提高网站性能方面的应用。Squid反向代理服务器位于本地 WEB 服务器和 Internet 之间 ,

组织架构如图 2:


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

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

  • Last-Modified: 告诉反向代理页面什么时间被修改

  • Expires: 告诉反向代理页面什么时间应该从缓冲区中删除

  • Cache-Control: 告诉反向代理页面是否应该被缓冲

  • Pragma: 用来包含实现特定的指令,最常用的是 Pragma:no-cache

利用 Squid 反向代理加速网站实例

本实例的域名是 wenjin.cache.ibm.com.cn,通过DNS的 轮询技术,将客户端的请求分发给其中一台 Squid 反向代理服务器处理,如果这台 Squid 缓存了用户的请求资源,则将请求的资源直接返回给用户,否则这台 Squid 将没有缓存的请求根据配置的规则发送给邻居 Squid 和后台的 WEB 服务器处理,这样既减轻后台 WEB 服务器的负载,又提高整个网站的性能和安全性。该系统结构图 3 如下:

图 3. 系统结构

<


本文转载自:http://www.ibm.com/developerworks/cn/linux/l-cn-squid/

共有 人打赏支持
xinson
粉丝 15
博文 133
码字总数 29814
作品 0
广州
程序员
利用 squid 反向代理提高网站性能

本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技...

红薯
2009/04/12
4.2K
4
squid反向代理配置,作为web服务器的前端内容缓存器。

squid反向代理配置,作为web服务器的前端内容缓存器。 本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在...

widely
2013/10/31
0
0
squid反向代理

squid反向代理配置,作为web服务器的前端内容缓存器。 本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在...

香胖
2015/12/07
23
0
六款优秀的 Linux Web 缓存软件

超文本传输 协议(HTTP)是互联网基本协议之一,主要用于分布式、协作式、超媒体的信息系统。通过HTTP,客户端向服务器端发送资源请求, 服务器端返回所请求资源如图像、样式表和JavaScript。...

红薯
2011/04/23
4.6K
5
六款优秀的Linux Web缓存开源软件

为了满足永无止境的Web需求,Web缓存正成为优化特定时间内数据传送量的至关重要的机制,它有助于减少延迟,加快网页载入,防止终端用户失去耐心。Web缓存优化了客户端和服务 器端之间的数据流...

mickelfeng
2013/06/07
0
0
centos编译安装squid3.4

squid3.4编译安装 squid反向代理工作原理: squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好用途。作者在具体实验环境下,利用 ...

coolio
2014/04/16
0
0
配置Squid代理服务器

1. 什么是squid (本文永久地址:http://woymk.blog.51cto.com/10000269/1920496) Squid是一个支持HTTP、HTTPS、FTP等服务的缓存代理软件,它可以加快客户端网页浏览的速度,提高客户机的访...

woymk
2017/04/28
0
0
系统架构的演变

一、最开始的网站架构 最初的架构,应用程序、数据库、文件都部署在一台服务器上,如图: 二、应用、数据、文件分离 随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库...

罗文浩
2016/02/19
36
0
反向代理---squid的实现

一、目的 通过配置代理服务器,实现以下目标: 代理服务器可以将远程的Web服务器页面缓存在本地 代理服务器端口设置为80端口 用户通过访问代理服务器即可获得远程Web服务器上的页面内容 远程...

bentian1208
01/05
0
0
反向代理---squid的实现

一、目的 通过配置代理服务器,实现以下目标: 代理服务器可以将远程的Web服务器页面缓存在本地 代理服务器端口设置为80端口 用户通过访问代理服务器即可获得远程Web服务器上的页面内容 远程...

bentian1208
01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

PostgresSQL 查看当前schema下所有的函数/存储过程

selectroutine_name from information_schema.routineswhere routine_catalog = 'YourDBName'and routine_schema = 'YourSchemaName'order by routine_name;...

Leyxiao
2分钟前
0
0
去除bootstrapValidator 的校验结果

$("#form").data('bootstrapValidator').destroy();//会报没有这个方法,很奇怪 $('#form').data('bootstrapValidator',null); $('#form').bootstrapValidator();...

暗中观察
3分钟前
0
0
java环境安装

1、首先下载jdk安装包,一般去官网,官网需要登录才可以下载。 2、下载完成双击运行,想改路径改下路径,比较简单。安装jdk安装完,会弹出个窗口,提示开始安装jre的位置,我这里窗口比较奇葩...

朝如青丝暮成雪
5分钟前
0
0
Linux Command

Copy with progress rsync -r --progress source dest

Lyle_W
6分钟前
0
0
个灯数据营销,帮你找回被浪费的广告费

近日,个灯受邀出席被喻为广告营销业界的年度盛会——第八届梅花网传播业大展北京站的活动。 在展会上,个灯总经理严雯婷女士带来了《数据增能,营销智能》的主题演讲,以理论与实践相结合的...

个推
8分钟前
0
0
java的反射机制理解

一、概念说明 java的反射机制,是在运行状态下,可以动态获取任意一个类的属性和方法;可以动态调用一个对象任意方法; 二、反射相关类 java.lang.Class; //类 java.lang.re...

盼望明天
11分钟前
0
0
nginx反向代理-多端口映射

代码解释 1.1 http:www.baidu.test.com默认是80,访问“/”利用反向代理,然后访问本地8083; 1.2 8083代表本地的前端工程访问地址,前端需要访问后台数据,”/”,继续代理到后台地址9803; ...

lilugirl
13分钟前
0
0
Jfinal使用log4j2打印日志

1,添加maven配置 <properties><log4j2.version>2.11.0</log4j2.version><slf4j.version>1.7.25</slf4j.version></properties> <!--slf4j及log4j2日志 --><dependency> ......

iborder
14分钟前
0
0
如何在Rancher 2.0上快速部署Datadog

Datadog是一种流行的托管监控解决方案,用于聚合和分析分布式系统的指标和事件。从基础架构集成到协作仪表板,Datadog为用户提供了一个简洁的单一窗格视图,用户可以快速查看对其最重要的信息...

RancherLabs
17分钟前
0
0
Java示例演示Functor 和monad

This article was initially an appendix in our Reactive Programming with RxJavabook. However introduction to monads, albeit very much related to reactive programming, didn't suit......

Quan全
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部