Apache Rewrite对apache性能影响的测试
[ Apache rewrite规则 ]
Apache中这个rewrite规则能把http://localhost/heiyeluren/readme.txt 重写到 D:\kiss\wwwroot\h\e\i\heiyeluren\readme.txt
修改httpd.conf,增加:
RewriteEngineOn
RewriteRule^/([0-9a-z])([0-9a-z])([0-9a-z])([0-9a-z]+)/(.*)/$1/$2/$3/$1$2$3$4/$5[L]
[ 性能测试 ]
使用 http_load 来进行页面访问测试 (下载http_load: http://www.acme.com/software/http_load/)
命令格式:http_load -p 并发访问进程数 -s 访问时间 需要访问的URL文件
准备URL文件:tst.list,文件格式是每行一个URL,URL最好超过50个测试效果比较好,另外,测试结果中我们主要是关心 fetches/sec 这个选项,这个我们称之为QPS,大致就是一台服务器每秒能够相应的查询次数,下面看到的测试结果中的 xxxx fetches/sec 就是每秒能够相应的查询次数,用这个来衡量性能。
PS:http_load 比 apache自带的 ab 要强不少,准确率也要高。
有rewrite,访问rewrite之后的URL
http_load -p 30 -s 60 tst.list
^[c137829 fetches, 26 max parallel, 275658 bytes, in 60.0003 seconds
2 mean bytes/connection
2297.14 fetches/sec, 4594.28 bytes/sec
msecs/connect: 0.0604275 mean, 11.447 max, 0.021 min
msecs/first-response: 2.70699 mean, 1190.06 max, 0.305 min
有rewrite,直接访问rewrite之前的URL
http_load-p30-s60tst2.list
148477fetches,30maxparallel,296954bytes,in60seconds
2meanbytes/connection
2474.62fetches/sec,4949.23bytes/sec
msecs/connect:0.058889mean,8.447max,0.02min
msecs/first-response:2.52814mean,1324.63max,0.298min
无rewrite,直接访问rewrite之前的URL
http_load-p30-s60tst2.list
151920fetches,29maxparallel,303840bytes,in60seconds
2meanbytes/connection
2532fetches/sec,5064bytes/sec
msecs/connect:0.0608508mean,153.375max,0.02min
msecs/first-response:2.35597mean,1091.58max,0.259min
有rewrite,但通过proxy实现
http_load-p30-s60tst.list
58586fetches,30maxparallel,117172bytes,in60.001seconds
2meanbytes/connection
976.417fetches/sec,1952.83bytes/sec
msecs/connect:0.0769494mean,100.978max,0.022min
msecs/first-response:8.93129mean,1190.54max,0.871min
[ 结论 ]
- apache的rewrite会产生微小的cpu开销,导致一些性能损失,但这个损失并不特别明显,所以不要害怕rewrite,当然规则太多性能可能也会有影响,所以尽量不要太多规则
- proxy很慢,且存在安全隐患(SSL是不支持proxy的),带[P]的rewriterule就是proxy。因此,除非万不得已(比如客户端js跨域),应尽量避免使用proxy。
- proxy不是apache的专长,如果为了反向代理加速,squid通常是一个更合适的选择。
PS:最后感谢同事健祥同学提供测试结果和相应说明,我只是进行了一些文字优化。:-)
分享到:
相关推荐
5. **调试与测试**:在实际部署之前,建议先在本地环境中充分测试Rewrite规则。可以利用`ErrorLog`等日志文件来追踪Rewrite引擎的工作过程,以便发现问题并及时调整。 通过上述介绍,我们可以看到Apache Rewrite ...
apache_rewrite语法的详细解析,实现php的URL重写。
在Apache配置文件`httpd.conf`或`.htaccess`中,你可以通过`RewriteEngine`指令启用Rewrite模块,并使用`RewriteRule`指令定义URL重写规则。例如: ```apacheconf RewriteEngine On RewriteRule ^old-page.html$ /...
- **性能考虑**:大量复杂的重写规则可能会影响服务器性能,请根据实际情况合理设计。 - **安全性**:确保重写规则不会导致安全漏洞,例如避免将敏感信息暴露在URL中。 - **测试**:在正式环境中部署之前,务必充分...
理解`.htaccess`和`mod_rewrite`的工作原理对于优化网站性能、提升用户体验以及增强网站安全性至关重要。通过熟练掌握这些配置,你可以实现诸如URL美化、防止盗链、限制访问等功能,使你的网站更加专业和高效。
平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 2.Apache Rewrite的配置 Apache下的Rewrite配置主要有两种,一种是针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.conf下书写。...
Apache Rewrite Rule是Apache服务器中的一种功能,用于URL重写,它是Apache HTTP服务器的mod_rewrite模块的核心功能。这个功能使得Web服务器能够根据预定义的规则,将用户请求的URL转换为另一种形式,通常是为了优化...
珍藏的Apache mod write 帮助手册,希望对大家有用
《Linux Apache Rewrite编译配置详解》 Apache Rewrite模块是Apache HTTP服务器中的一个重要组件,主要用于URL重写和路由重定向。这个模块使得我们能够基于正则表达式对请求的URL进行动态转换,从而实现诸如隐藏...
apache 开启重定向 rewrite的实现方法 1.开启重定向模块 $ ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enable/rewrite.load 2.修改配置文件(某些php框架需要) $ vim /etc/apache2/...
为了让客户不会因此受到任何影响,最好的方法就是使用Apache Rewrite Rule(重写规则)。 二、重写规则的作用范围 —- 1.使用在Apache主配置文件httpd.conf中。 —- 2.使用在httpd.conf里定义的配置中。 ...
以下是对Apache rewrite重写参数及其用法的详细说明: 1. **R[=code]**: 强制外部重定向。当你设置这个标志时,Apache将生成一个新的外部HTTP请求,通常是301或302重定向。如果未指定`code`,默认为302(临时重定向...
Apache的Mode Rewrite模块和.htaccess文件配合 Apache的Mode Rewrite模块和.htaccess文件配合是Apache服务器中两个非常重要的组件,特别是在网站开发和部署中。下面我们将详细介绍这两个组件的概念、配置方法和应用...
`mod_rewrite`是Apache服务器中的一个可选模块,用于对HTTP请求进行URL转换。该模块可以通过一系列预定义的规则来改变客户端看到的URL,这对于SEO(搜索引擎优化)以及创建更简洁、易于理解的URL特别有用。通过`mod_...
3. 完成模块启用后,还需要对Apache的配置进行相应调整,以允许`.htaccess`文件中的重写规则生效。打开配置文件: ``` sudo vim /etc/apache2/sites-enabled/000-default.conf ``` 或者,如果你的配置文件是软...
Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码: LoadModule rewrite_module libexec/mod_rewrite.so AddModule mod_rewrite.c Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段...
Apache 2.0.58在`mod_rewrite`模块中的漏洞可能涉及到对重写规则的不当处理,这可能导致服务器在解析特定的请求时出现错误,从而允许远程代码执行。`mod_rewrite`通过正则表达式匹配URL,然后根据匹配的结果重定向或...
Apache Rewrite 规则是Apache HTTP服务器中的一个模块mod_rewrite的功能,用于URL重写和路由重定向。这个功能在网站优化、动态URL...这个案例也提醒我们,在编写Rewrite规则时,清晰的逻辑和对变量的理解是非常关键的。
apache_rewrite_tester 为您的 Apache 重写规则编写单元测试,呵呵。 这显然只是一个徒劳的练习,但它恰好是一个非常有教育意义的徒劳练习。 不要指望这与 Apache 的任何特质相匹配。