中小型web网站架构初探之四:前端SQUID高速WEB缓存服务器的搭建

简介: SQUID+GZIP+IIS的完美结合!SQUID如果不能搞定GZIP,那么肯定流量虚高的,所以SQUID高速WEB缓存服务器的关键问题在于搞定GZIP。

SQUID+GZIP+IIS的完美结合!

SQUID如果不能搞定GZIP,那么肯定流量虚高的,所以SQUID高速WEB缓存服务器的关键问题在于搞定GZIP。

以下是实例过程

为了原生支持GZIP,4899网通WEB缓存服务器用了 SQUID3.0 FOR WINDOWS 

下载地址 http://www.acmeconsulting.it/SquidNT.html

1.建立SQUID缓存目录在 d:/newcache 给user用户以完全控制权限

2. 把squid压缩包解压到C盘目录,进入squid/etc目录,复制一分,然后重命名把原文件的.default全去掉

3.开始编辑 squid.conf

a.我们对外用80端口,所以用批量替换 3128 替换为 80
b.搜索 http_port 80 后面加上 vhost 变成

程序代码 程序代码

http_port 80 vhost
icp_port 3130
cache_mem 433M (取内存的1/3+100M)
cache_dir aufs d:/newcache 12000 16 256
maximum_object_size 10240 KB
maximum_object_size_in_memory 6000 KB
memory_pools on
memory_pools_limit 100 MB
cache_swap_high 98%
cache_swap_low 90%
error_directory c:/squid/share/errors/Simplify_Chinese
hosts_file c:/windows/system32/drivers/etc/hosts
cache_peer www.4899.com parent 80 0 no-query originserver no-digest name=cache0
cache_peer 125.46.39.22 parent 8080 0 no-query originserver no-digest name=cache1
cache_peer 4899-img.mfcdn.com parent 8080 0 no-query originserver no-digest name=cache2
cache_peer 4899-flash.mfcdn.com parent 8080 0 no-query originserver no-digest name=cache3
cache_peer_domain cache0 www.4899.com 4899wt.4899.com
cache_peer_domain cache1 125.46.39.22
cache_peer_domain cache2 4899-img.mfcdn.com
cache_peer_domain cache3 4899-flash.mfcdn.com
#配置本机squid允许接受访问的域名,请注意name的对应
acl Safe_ports port 80
acl Safe_ports port 81
acl Safe_ports port 3130
http_access allow all
#允许以上端口的代理



期间找到 http_access deny all #掉他

4.建立缓存目录,修改hosts
通过cmd进入 c:/squid/sbin
squid -z
将建好缓存
squid -i
将squid注册为系统服务,在服务里,找到他,设置自动启动

进入 c:/windows/system32/drivers/etc/ 编辑 hots文件,将 www.4899.com 指向源服务器电信ip
61.152.249.77 www.4899.com

5.启动squid服务,在服务中启动他

6.为了使squid能响应iis的GZIP,要在源服务器做一定修改

a.经典的IIS启用GZIP的教程如下:

复制 C:/Windows/system32/inetsrv/metabase.xml 到另外的备份文件夹中.

在开始菜单中启动 Internet 信息服务(IIS)管理器,右键点击“网站”属性,打开“服务”选项卡,勾选“HTTP 压缩”的两个选项。“临时目录”和“临时目录最大容量”可根据需要自行设置。设置完成后点击确定。

右键点击“网站”下方的 “Web服务扩展”,添加一个新的Web服务扩展,扩展名填写为“HTTP Compression”或其他,都可以。“要求的文件”添加:c:/windows/system32/inetsrv/gzip.dll ,并勾选“设置扩展状态为允许”,完成后点击确定。

在开始菜单中运行 notepad C:/Windows/system32/inetsrv/metabase.xml ,打开metabase.xml 文件,请在任何改动前再次确认该文件已经备份。

搜索并找到 metabase.xml 文件中的 <IIsCompressionScheme    片段中的 HcScriptFileExtensions,依照原有文件的格式添加你希望进行 HTTP 压缩的文件扩展名,静态文件HcFileExtensions可添加 JS,CSS 等; 动态文件 HcScriptFileExtensions 可添加"ASPX""ASMX",如下:

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
    HcCompressionDll="%windir%/system32/inetsrv/gzip.dll"
    HcCreateFlags="0"
    HcDoDynamic

Compression="TRUE"
    HcDoOnDemandCompression="TRUE"
    HcDoStaticCompression="FALSE"
    HcDynamicCompressionLevel="9"
    HcFileExtensions="htm
     html
     js
     css
     txt"
    HcOnDemandCompLevel="10"
    HcPriority="1"
    HcScriptFileExtensions="asp
     aspx
     asmx
     dll
     exe"
>
</IIsCompressionScheme>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
    HcCompressionDll="%windir%/system32/inetsrv/gzip.dll"
    HcCreateFlags="1"
    HcDoDynamicCompression="TRUE"
    HcDoOnDemandCompression="TRUE"
    HcDoStaticCompression="TRUE"
    HcDynamicCompressionLevel="9"
    HcFileExtensions="htm
     html
     js
     css
     txt"
    HcOnDemandCompLevel="10"
    HcPriority="1"
    HcScriptFileExtensions="asp
     aspx
     asmx
     dll
     exe"
>
</IIsCompressionScheme>

注意“Compression/deflate”和“Compression/gzip”两个片段都需要修改。动态压缩等级,HcDynamicCompressionLevel 建议设置为“9”
如果你的服务器上某一个Web站点不希望启用 IIS 压缩,请运行以下脚本:

cscript. C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/site#/root/DoStaticCompression False
cscript. C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/site#/root/DoDynamicCompression False

如果想增加启用 HTTP 压缩的文件类型,请运行以下脚本:

"" 中为文件扩展名,别忘了把原有的扩展名加上。

静态文件压缩:

CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcFileExtensions "htm" "html" "txt" "doc" "ppt" "xls"

CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions "htm" "html" "txt" "doc" "ppt" "xls"

动态文件压缩:

CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcScriptFileExtensions "asp" "aspx" "asmx" "dll" "exe" "php"

CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcScriptFileExtensions "asp" "aspx" "asmx" "dll" "exe" "php"

将site#替换为该 Web 站点的 ID。Web 站点的 ID 是什么到“日志记录属性”中看一下日志记录的“日志文件名”前面的路径就知道了。

运行以上脚本前务必备份,运行后再次执行“IISReset”使生效.

现在看一下 HTTP 压缩后的效果吧:

测试 HTTP 压缩效果的工具:

http://www.pipeboost.com/

b.做适当修改,以适应squid缓存需要

在开始菜单中运行 notepad C:/Windows/system32/inetsrv/metabase.xml ,打开metabase.xml 文件,请在任何改动前再次确认该文件已经备份

HcNoCompressionForHttp10="TRUE"
HcNoCompressionForProxies="TRUE"

上面这俩改成FALSE

然后查找 HcDoDynamicCompression 也要改成 FALSE,这实际上是关闭了动态加速,以4899小游戏网站配置SQUID+GZIP的经验,HcDoDynamicCompression="TRUE"时,SQUID缓存动态文件会出现问题,关了就好了。

目录
相关文章
|
1月前
|
存储 资源调度 应用服务中间件
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
27 0
|
1月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
164 0
|
1月前
|
前端开发 应用服务中间件 nginx
使用Docker快速搭建Web服务器Nginx
本文指导如何使用Docker快速搭建Nginx服务器。首先,通过`docker pull`命令获取Nginx镜像,然后以容器形式运行Nginx并映射端口。通过挂载目录实现本地文件与容器共享,便于自定义网页。使用`docker ps`检查运行状态,访问IP:8088确认部署成功。最后,介绍了停止、删除Nginx容器的命令,强调Docker简化了服务器部署和管理。
50 0
|
1天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL与NoSQL的主要区别在于数据结构、查询语言和可扩展性。MySQL是关系型数据库,依赖预定义的数据表结构,使用SQL进行复杂查询,适合垂直扩展。而NoSQL提供灵活的存储方式(如JSON、哈希表),无统一查询语言,支持横向扩展,适用于处理大规模、非结构化数据和高并发场景。选择哪种取决于应用需求、数据模型及扩展策略。
9 0
|
29天前
|
存储 弹性计算 前端开发
ECS负载问题之前端包加载很慢如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
1月前
|
存储 机器学习/深度学习 并行计算
阿里云服务器X86计算、Arm计算、GPU/FPGA/ASIC、高性能计算架构区别
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下不同类型的云服务器有何不同,主要特点及适用场景有哪些。
阿里云服务器X86计算、Arm计算、GPU/FPGA/ASIC、高性能计算架构区别
|
1月前
|
监控 JavaScript 安全
监控内网电脑软件设计与实现:基于Node.js的服务器端架构分析
在当今信息技术高度发达的时代,监控内网电脑的需求日益增长。企业需要确保网络安全,个人用户也需要监控家庭网络以保护隐私和安全。本文将介绍一种基于Node.js的服务器端架构,用于设计和实现监控内网电脑软件。
102 0
|
1月前
|
Windows
Windows Server 各版本搭建 Web 服务器实现访问本地 Web 网站(03~19)
Windows Server 各版本搭建 Web 服务器实现访问本地 Web 网站(03~19)
57 2
|
1月前
|
机器学习/深度学习 Python
Python基础:构建一个简单的Web服务器
Python基础:构建一个简单的Web服务器
57 1
|
1月前
|
前端开发 JavaScript 应用服务中间件
部署前端项目到服务器过程详解
部署前端项目到服务器过程详解
106 0