Apache服务器代理与缓存
Apache服务器代理与缓存
1、代理
正向代理:
反向代理:
mod_proxy模块
apache实现代理和网关的关键模块。加载mod_proxy模块:LoadModule proxy_module modules/mod_proxy.so
指令:
- ProxyRequests指令:启用或禁止apache作为正向代理服务器的功能<proxymatch>/<proxy>容器:存放作用于代理服务器的指令,可以控制用户的权限,其中proxymatch支持正则表达式
- AllowCONNECT指令:指定连接的端口号,需要加载mod_proxy_connect模块,默认apache代理使用443(https)和563(snews)进行连接。NoProxy指令:不使用代理,只在局域网内使用。
- ProxyBlock指令:屏蔽一些想过滤的网站。
- ProxyDomain指令:指定一个默认的域,只能作用于局域网。
- ProxyIOBufferSize指令:用于调整内部缓冲区的大小,有效值需要小于或等于8192.建议使用mod_cache模块来作缓存。
- ProxyMaxForwards指令:为防DOS攻击,指定允许转发请求的最大代理数目。
- ProxyPass指令:将一个远程服务器映射到本地服务器中。常用参数:图ProxyPass参数
- ProxyPassReverse指令:用于重写http重定向应答中的Location、Content-Location、URL,避免http重定向绕过反向代理的问题。
- ProxyPassReverseCookieDomain和ProxyPassReverseCookiePath指令:分别用于改写域名和改写cookie,用法于ProxyPassReverse类似。
- ProxyRemote和ProxyRemoteMatch指令:指定此代理使用的远程代理,其中ProxyRemoteMatch可以使用正则表达式。
- ProxyReceiveBufferSize指令:设置代理服务器的http和ftp连接的缓冲区大小,必须大于512或为0表禁止使用系统缓冲。
- ProxyTimeout指令:设置用户连接代理服务器时的超时时间。
- ProxyErrorOverride指令:反向代理设置中为用户提供的错误页面。
- ProxyBadHeader指令:设置mod_proxy如何处理不合法的应答头。
- ProxyPreserveHost指令:将用户请求的host行传递给被代理的服务器。
- ProxyVia指令:控制代理服务器对via头的使用
示例:
ProxyRequests On ProxyVia On <Proxy> Order deny,allow allow from all </Proxy> ProxyPass /jonse http://www.jonse.com ProxyPassReverse /jonse http://www.jonse.com
其他代理模块
以下5个辅助代理模块都需要mod_proxy模块的支持:
- mod_proxy_ajp:提供对apache Jserv Protocal的支持
- mod_proxy_balancer:提供对负载均衡的支持
- mod_proxy_connect:提供对http connect方法的支持
- mod_proxy_ftp:提供对ftp功能的支持
- mod_proxy_http:提供代理http请求的功能
2、缓存
利用缓存技术可以有效降低服务器负载、提供访问的响应速度。有两种缓存技术分别是基于磁盘和基于内存的.apache提供的缓存模块可以将本地服务器提供的web连接进行缓存,同时为正反向代理提供缓存空间,这些缓存内容以URL的方式进行缓存和索引。apache的三个缓存模块:mod_cache模块提供缓存的全局设置;mod_mem_cache和mod_disk_cache模块分别提供具体的基于内存和基于磁盘的缓存。
mod_cache模块
指令:
- CacheDefaultExpire:设置缓存资源的有效时间,默认3600s。
- CacheDisable:设置某个目录或以某个字符串开头的URL不进行缓存。
- CacheEnable:指定以何种缓存方式(mem、disk、fd)来缓存指定的目录或URL。
- CacheMaxExpire:缓存文件的最长有效时间。默认是86400s(24H)。
- CacheIgnoreHeader:不缓存指定的http头部。
- CacheIgnoreNoLastMod:缓存没有在头中设置LastMod的资源。
- CacheIgnoreQueryString:在缓存中忽略查询字符串。
- CacheLastModifiedFactor:用来回应Last Modified资源从而计算出到期时间。
- CacheStoreNoStore:on和off开关控制Cache-Control中包含no-sotre时是否缓存。
- CacheStorePrivate:on和off开关控制Cache-Control中包含pricate时是否缓存。
mod_mem_cache模块
基于内存的缓存示例:
指令:
- MCacheMaxObjectCount:用于设定最大缓存对象的数量。
- MCacheMaxObjecSize:设定允许缓存的最大文档大小。
- MCacheMinObjecSize:设定允许缓存的最小文档大小。
- MCacheRemovalAlgorithm:指定当需要从缓存中移除哪个文档是所使用的算法(LRU或GDSF)。
- MCacheSize:用于设置缓存使用的最大内存量数量。
mod_disk_cache模块
基于磁盘缓存示例:
mod_file_cache模块
提供文件缓存支持。如:
MMapFile /srv/wwww/index.html --将index.html文件中的内容映射到内存中,提供访问效率
CacheFile /srv/wwww/index.html --与MMapFile类型,效果不及MMapFile,但内存消耗少
Apache服务器代理与缓存的更多相关文章
- HTTP 笔记与总结(7)HTTP 缓存(配合 Apache 服务器)
在网络上,有一些缓存服务器,另外浏览器自身也有缓存功能. 例如: <!DOCTYPE html> <html lang="en"> <head> ...
- 使用XAMPP配置Apache服务器反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时 ...
- 缓存(之一) 使用Apache Httpd实现http缓存
http://www.tuicool.com/articles/EFfeu2 HTTP性能的问题与方案 一个最终用户访问一个网页,从浏览器发出请求,到接受请求,时间大体上消耗在了以下几个部分: 建立t ...
- Nginx + Apache 反向代理
反向代理负载均衡 使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度.因此也可以考虑使用这种技术,让代理服务器将请求均匀转发给多台内部Web服务器之一上, ...
- 6、nginx的反向代理及缓存功能
nginx模块的应用 ngx_http_proxy_module nginx 反向代理模块: http://nginx.org/en/docs/http/ngx_http_proxy_module. ...
- Linux实战教学笔记42:squid代理与缓存实践(一)
第1章 Squid介绍 1.1 缓存服务器介绍 缓存服务器(英文意思cache server),即用来存储(介质为内存及硬盘)用户访问的网页,图片,文件等等信息的专用服务器.这种服务器不仅可以使用户可 ...
- 18、Apache服务器
-- web 服务器 survey.netcraft.net --此网站会有每月份的世界上网站使用的WEB服务器的使用率统计 www.apache.org apache a ...
- Apache 正向代理与反向代理配置
Apache提供了 mod_proxy 模块用于提供代理服务,能够支持的包括正向代理.反向代理.透明代理.缓存.负载均衡,HTTP代理.FTP代理.SSL代理等若干强大的功能. 配置代理方法很简单那, ...
- squid代理与缓存(上)
squid代理与缓存(上) 1. Squid介绍 1.1 缓存服务器介绍 缓存服务器(英文意思cache server),即用来存储(介质为内存及硬盘)用户访问的网页,图片,文件等等信息的专用服务器. ...
随机推荐
- Java中比较不同的MD5计算方式
在项目中经常需要使用计算文件的md5,用作一些用途,md5计算算法,通常在网络上查询时,一般给的算法是读取整个文件的字节流,然后计算文件的md5,这种方式当文件较大,且有很大并发量时,则可能导致内存打 ...
- IOS项目自动构建
# Sets the target folders and the final framework product. # 如果工程名称和Framework的Target名称不一样的话,要自定义FMKN ...
- 用尽洪荒之力解决Apple Store ipv6审核通关---linux服务器支持ipv6
强势的库克时代到来,苹果开启了强制IPV6审核,大家也知道中国现在的情况,除了教育网实验性的支持IPV6,ISP运营商还不支持,想必大家都陆陆续续的遭受到了苹果无情的拒绝,以前开个加急,审核 ...
- BroadcastRecevier广播接受者
广播接收器的两种注册方式: 1)动态注册:在代码中注册,创建一个IntentFilter(意图过滤器)对象,设置想要就收的广播,在onCreate()方法中通过调用registerReceiver() ...
- LR破解版录制手机脚本
LR破解版录制手机脚本 最近在网上听到好多童鞋都在问如何用LR做手机性能测试,恰好自己对这方面也挺感兴趣,经过查阅很多资料,形成此文档以做备注~!如果有感觉我写的不对的地方,敬请指正,谢谢~! ...
- CodeForces 433C Ryouko's Memory Note-暴力
Ryouko's Memory Note Time Limit:1000MS Memory Limit:262 ...
- new一个二维数组
.定义一个二维数组 char **array1 array1 = new char *[x]; for(i=0;i<x;++i) array1[i] = new char[y]; ...用的时候 ...
- node基础 --概念
非阻塞IO: node.js使用了事件轮询 setTimeout是非阻塞的: 对于像http,net等原生模块中IO部分也采用了事件轮询,其本质是: 当node接受到浏览器的http请求时,底层的TC ...
- 构造 Codeforces Round #302 (Div. 2) B Sea and Islands
题目传送门 /* 题意:在n^n的海洋里是否有k块陆地 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 输出完k个L后,之后全部输出S:) 5 10 的例子可以是这样的: LSLS ...
- 【Vijos】1218 数字游戏
题目链接:https://vijos.org/p/1218 算法:环形DP+划分型DP 环形DP的思路很简单,将1~n中每一个节点当成起点进行划分型DP即可,关于划分型DP前面论文有介绍~查找tag把 ...