精华内容
参与话题
问答
  • Apache Rewrite对apache性能影响的测试[ Apache rewrite规则 ]Apache中这个rewrite规则能把http://localhost/heiyeluren/readme.txt 重写到 D:/kiss/wwwroot/h/e/i/heiyeluren/readme.txt 修改httpd.conf,增加:...


    Apache Rewrite对apache性能影响的测试


    [ Apache rewrite规则 ]

    Apache中这个rewrite规则能把http://localhost/heiyeluren/readme.txt 重写到 D:/kiss/wwwroot/h/e/i/heiyeluren/readme.txt

    修改httpd.conf,增加:

    RewriteEngine On
    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 -p 30 -s 60 tst2.list
    148477 fetches, 30 max parallel, 296954 bytes, in 60 seconds
    2 mean bytes/connection
    2474.62 fetches/sec, 4949.23 bytes/sec
    msecs/connect: 
    0.058889 mean, 8.447 max, 0.02 min
    msecs/first-response: 
    2.52814 mean, 1324.63 max, 0.298 min


    无rewrite,直接访问rewrite之前的URL

    http_load -p 30 -s 60 tst2.list
    151920 fetches, 29 max parallel, 303840 bytes, in 60 seconds
    2 mean bytes/connection
    2532 fetches/sec, 5064 bytes/sec
    msecs/connect: 
    0.0608508 mean, 153.375 max, 0.02 min
    msecs/first-response: 
    2.35597 mean, 1091.58 max, 0.259 min

     

    有rewrite,但通过proxy实现

    http_load -p 30 -s 60 tst.list
    58586 fetches, 30 max parallel, 117172 bytes, in 60.001 seconds
    2 mean bytes/connection
    976.417 fetches/sec, 1952.83 bytes/sec
    msecs/connect: 
    0.0769494 mean, 100.978 max, 0.022 min
    msecs/first-response: 
    8.93129 mean, 1190.54 max, 0.871 min

     


    [ 结论 ]

    • apache的rewrite会产生微小的cpu开销,导致一些性能损失,但这个损失并不特别明显,所以不要害怕rewrite,当然规则太多性能可能也会有影响,所以尽量不要太多规则
    • proxy很慢,且存在安全隐患(SSL是不支持proxy的),带[P]的rewriterule就是proxy。因此,除非万不得已(比如客户端js跨域),应尽量避免使用proxy。
    • proxy不是apache的专长,如果为了反向代理加速,squid通常是一个更合适的选择。


    PS:最后感谢同事健祥同学提供测试结果和相应说明,我只是进行了一些文字优化。:-)


     

    展开全文
  • 在官方blog中,android工程师谈到了如何去选择apache client和httpurlconnection的问题: 原文见 http://android-developers.blogspot.com/2011/09/androids-http-clients.html 小结几点:1) apache httpclient...
    在官方blog中,android工程师谈到了如何去选择apache client和httpurlconnection的问题: 
    原文见 http://android-developers.blogspot.com/2011/09/androids-http-clients.html 


    小结几点:

    1) apache httpclient比较稳定点,少BUG,但由于API的关系,扩展改造麻烦点, 
    所以android team现在不鸟这东西了基本 

    2) httpurlconnection比较轻便,灵活,易于扩展,在2。2前有个BUG, http://code.google.com/p/android/issues/detail?id=2939 
      可以通过如下代码去解决: 
     
    Java代码  收藏代码
    1. private void disableConnectionReuseIfNecessary() {    
    2.   // HTTP connection reuse which was buggy pre-froyo     
    3.  if (Integer.parseInt(Build.VERSION.SDK) < Build.VERSION_CODES.FROYO) {        System.setProperty("http.keepAlive""false");     
    4.  }  
    5. }  

    3) 在Gingerbread中,httpurlconnection会增加对压缩报文头的处理,服务端可以用 GZIP,详细见: 
      http://developer.android.com/reference/java/net/HttpURLConnection.html 

    4) 对HTTPURLCONECTION中,在3.0后以及4.0中都进行了改善,比如对HTTPS的支持, 
    在4.0中,还增加了对缓存的支持呢!比如下面的代码: 
    Java代码  收藏代码
    1. private void enableHttpResponseCache()   
    2. {    
    3.   try {  
    4.         long httpCacheSize = 10 * 1024 * 1024// 10 MiB      
    5.     File httpCacheDir = new File(getCacheDir(), "http");      
    6.     Class.forName("android.net.http.HttpResponseCache").getMethod("install", File.classlong.class.invoke(null, httpCacheDir, httpCacheSize);     
    7.  }   
    8. catch   
    9. (Exception httpResponseCacheNotAvailable) {    
    10.   }  
    11. }  

    5)在android SDk中httpclient使用的是4.0beta2,不得不说这个版本里面有些蛋疼的bug:

    I. auth caching;

    II. 在4.0上的sdk,将wifi和3g同时打开,理论上来说,网络接口应该走wifi,但是却走了代理,导致访问服务器网络失败;

    解决上面问题的唯一办法就是引入“http://code.google.com/p/httpclientandroidlib/”中的库,然后修改相应的类,典型的例子就是ThreadSafeClientConnManager变成了PoolingClientConnectionManager


    ----------------------------
    转载自:

    http://jackyrong.iteye.com/blog/1228220

    http://blog.csdn.net/androidzhaoxiaogang/article/details/8158122


    展开全文
  • 我们平时使用apache常常了解他的性能只能使用ps aux|grep httpd|wc -l查看有多少个进程,但处理了多少http的请求我们不清楚,进程是不是在工作,还是在等都不是很明白,要了解apache的性能,我们需要...对Apache Server Stat

          我们平时使用apache常常了解他的性能只能使用ps aux|grep httpd|wc -l查看有多少个进程,但处理了多少http的请求我们不清楚,进程是不是在工作,还是在等都不是很明白,要了解apache的性能,我们需要使用Apache Server Status的模块来详细了解apache工作的怎么样.下面我还介绍使用cacti来监控它.

    对Apache Server Status的启用
    对Apache的状态管理的模块是LoadModule status_module modules/mod_status.so,所以这个需要有
    然后打开下面的配置


    ExtendedStatus On


    配置Apache Server Status的权限
    <location /server-status>
             SetHandler server-status
             Order Deny,Allow
             Deny from all
             Allow from 60.60.60.60
    </location>

     

    打开查看的话就使用http://60.60.60.60/server-status来访问,注意VH的apache要设置在一个VH中,不然你分不清是那个地址来查看看这个信息.但ExtendedStatus不能放在VH中.
    上面的链接还可以加个?refresh=N来设置多久自动刷新一次

    如下,是我的机器的显示
    Apache Server Status for 60.60.60.60

    Server Version: Apache/2.2.3 (CentOS)
    Server Built: Jan 15 2008 20:33:41

    Current Time: Wednesday, 03-Sep-2008 17:17:37 CST
    Restart Time: Wednesday, 03-Sep-2008 17:09:44 CST
    Parent Server Generation: 9
    Server uptime: 7 minutes 53 seconds
    Total accesses: 19517 - Total Traffic: 1.4 GB
    CPU Usage: u27.78 s2.67 cu0 cs0 - 6.44% CPU load
    41.3 requests/sec - 3.0 MB/second - 73.5 kB/request
    131 requests currently being processed, 33 idle workers

    KKKK_WK.KKKK_KKC_____C_CWKKK_CK_.K_WKK.KK__K_KK.KKK_W_KKCWKKW.K.
    KC__KW_KW._KKKKKWCKKK_K.KKCCWKKKW_KW.K.KWC._W.CKKKKK.KKKK_KKC_.K
    _K..._K.WC._..KKC._.._..KK__.C..WK.CK.K.WWKCK..KK_.W.K...K..WKCC
    ..WKKK..K.KK...W.K..W.K.KK..

     

    server-status 的输出中每个字段所代表的意义如下:
    字段                                                    说明
    Server Version                       Apache 服务器的版本。
    Server Built                            Apache 服务器编译安装的时间。
    Current Time                         目前的系统时间。
    Restart Time                          Apache 重新启动的时间。
    Parent Server Generation      Apache 父程序 (parent process) 的世代编号,就是 httpd 接收到 SIGHUP 而重新启动的次数。
    Server uptime                        Apache 启动后到现在经过的时间。
    Total accesses                       到目前为此 Apache 接收的联机数量及传输的数据量。
    CPU Usage                            目前 CPU 的使用情形。
    _SWSS....                               所有 Apache process 目前的状态。每一个字符表示一个程序,最多可以显示 256(取决于ServerLimit的设置) 个程序的状态。

     


    Scoreboard Key    上述状态的说明。以下为每一个字符符号所表示的意义:

        * _:等待连结中。
        * S:启动中。
        * R: 正在读取要求。
        * W:正在送出回应。
        * K:处于保持联机的状态。
        * D:正在查找 DNS。
        * C:正在关闭连结。
        * L:正在写入记录文件。
        * G:进入正常结束程序中。
        * I:处理闲置。
        * .:尚无此程序。

     

    Srv         本程序与其父程序的世代编号。
    PID         本程序的 process id。
    Acc         分别表示本次联机、本程序所处理的存取次数。
    M         该程序目前的状态。
    CPU         该程序所耗用的 CPU 资源。
    SS         距离上次处理要求的时间。
    Req         最后一次处理要求所耗费的时间,以千分之一秒为单位。
    Conn         本次联机所传送的数据量。
    Child         由该子程序所传送的数据量。
    Slot         由该 Slot 所传送的数据量。
    Client         客户端的地址。
    VHost         属于哪一个虚拟主机或本主机的 IP。
    Request         联机所提出的要求信息。

     

     

    相当不错吧.下面正题,怎么在Cacti中监控他的参数:

    下载模板和脚本
    http://forums.cacti.net/about25227.html&highlight=apachestats

    在上面的地址下载一个叫 ApacheStats08.zip的,中间有二个文件,一个处理脚本php的,另一个是xml的文件.
    1.其中的ss_apache_stats.php是脚本文件,它是一个php的文件,放到你的cacti/scripts/下面.

    2.接下来在cacti界面导入cacti_host_template_webserver_-_apache.xml这个文件

    3.你就可以在cacti中加入这些设置.就不细写了,如下

        被监测的apache服务器需要向上面一样,打开mod_status功能,记的设置好权限访问,不然任何人都可以见到可不好哦
        所以我的上面的allow是写的cacti的(60.60.60.60你有这么好的ip吗,呵呵)服务器的地址,你也记的改一下你的

    展开全文
  • Windows环境下对Apache进行源代码级跟踪调试Apache Server源代码的调试跟普通程序不太一样,因为它不是一个直接可以从IDE环境运行的独立程序。笔者最先也是感觉无从下手,网上这方面的资料很少,我也是经过摸索才...
    Windows环境下对Apache进行源代码级跟踪调试
    Apache Server源代码的调试跟普通程序不太一样,因为它不是一个直接可以从IDE环境运行的独立程序。笔者最先也是感觉无从下手,网上这方面的资料很少,我也是经过摸索才得以解决,这里写出来希望对研究Apache源代码的朋友有所帮助。
    Apache Server的源代码量很大(几十万行),读起来很是费劲。但是如果能够在源代码级动态调试把代码跟踪一遍,采用这样的方式阅读源代码必将事半功倍。
    要声明的是:如果想要在Windows环境下在源代码级别进行跟踪调试,首先必须将源代码编译通过。笔者是通过Visual Studio.net2003编译通过的,Apache的版本为2.2.4,下载名为httpd-2.2.4-win32-src,可以在Apache的官方网站上下载到。
    要在Visual Studio.net下将Apache编译通过也并非易事,这里不讲这个。我们假定你已经通过Visual Studio.net将Apache编译通过并且以Debug方式安装到本地计算机上,并假设你的安装根目录为D:/Apache22。
     
    (1)先启动Apache服务器,通过命令行方式如下
    path D:/Apache22/bin    #设置环境变量
    httpd –k install          #安装
    httpd –k start           #启动
     
    (2)启动Visual Studio.net IDE环境,并设置断点
    启动vs.net环境,打开Apache解决方案。找到你确定执行一个http请求一定要执行的代码(笔者自己写一个处理模块。如果你没有自己的写的模块,只想阅读源代码,建议打开工程中的libhttpd模块的mpm_winnt文件夹下的child.c,在L775的处理http连接的函数ap_process_connection调用处设置一个断点,所有的http请求都会经过这里。
     
    (3)找到你要调式的Apache进程
    Apache在windows环境下运行时有一个父进程和一个子进程。打开任务管理器,可以看到进程列表中有两个名为”httpd.exe”的进程,可以通过其线程数的多少来区分父子进程。默认情况下是无法看到进程所拥有的线程数。你可以通过任务管理器的查看->选择列菜单打开如下所示:
    将线程计数项勾上,然后确定就可以看到进程的线程数。其中线程数多(大约254左右)的就是子进程。 
    (4)将源代码与进程关联
    选择vs.net的调试->进程菜单,打开如下进程对话框:
    注意选中下面的”显示系统进程”,然后选中子进程,单击右边的”附加”按钮,打开如下:
    如图选中Common Language Runtime和Native两项,然后确定,并关闭进程对话框。这是你会发现vs.net已经处理调试状态。
     
    (5)触发调试
        在IE浏览器地址栏中输入” http://localhost/”,如果前面的步骤都正确,这时程序会在你设置断点的地方停下来(第一次时间比较长,系统需要加载一些调试信息)。这时你就可以跟随断点轻松了解Apache是如何处理http请求消息,进而了解Apache的内核及工作原理。
    展开全文
  • 使用Shell对apache日志进行分析

    千次阅读 2011-12-03 10:40:33
    人人网一个笔试题就是要求用shell分析Apache日志(/usr/local/apache2/logs/access_log),要求列出当天访问次数最多的IP,下面是典型的访问信息的log。用shell列出访问最多的20个ip: 180.168.41.175 - - [23/...
  • PHP开发者对Apache和nginx的取舍

    千次阅读 2018-09-24 10:48:00
    首先我们来谈谈老朋友ApacheApache HTTP Server(简称Apache)是世界使用排名第一的Web服务器软件,音译为阿帕奇,是Apache软件基金会的一个开放源码Web服务器,可以运行几乎所有的计算机平台,其次开放的API接口,...
  • httpd – 对Apache的DFOREGROUND感到困惑

    千次阅读 2019-05-30 11:14:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 如何对Apache Web服务器进行性能优化

    千次阅读 2017-03-31 10:03:42
    内容介绍Apache是一套极为强大的Web服务器。为了简化初始设置,其提供多种预安装模块。如果大家希望快速实现项目上线并投入生产,其无疑是最为出色的备选方案。不过,随着站点规模的扩大,大家往往会面临更多性能...
  • Apache BeanUtil简介。Apache Common BeanUtil是一个常用的在对象之间复制数据的工具类,著名的web开发框架struts就是依赖于它进行ActionForm的创建。 BeanUtil最常用的类是org.apache.commons.beanutils.BeanUtils...
  • mod_auth_mysql身份对apache认证

    千次阅读 2016-11-11 19:29:42
     现在很多网站用户的访问权限进行了严格的限制,用户在访问某些资源时需要给出“用户名/口令"来确认自己的身份。目 前,使用最多的身份认证方法是将用户名、口令存放在一个数据库中,当用户要访问某些受限制的...
  • 遇到这样的事情,公司在别的网站投放了广告(比如搜狐),点击广告连接到我们自己的网站 ,广告是按点击量... 想想通过统计apache的访问日志,可以完成这件事情; 前台页面代码: // 时间转化函数 function Forma
  • [shell]对apache进程进行检测的脚本

    千次阅读 2011-09-05 11:08:26
    每日要将apache的访问日志和错误日志按日期进行打包备份。所以我写了一个脚本,每天晚上停止apache,并将日志打包,备份,删除,然后再重新启动apache进程。结果问题出现了。有些时候,有可能apache会无法再重新启动...
  • 使用Ab命令对Apache服务器进行负载压力测试 本站原创 [基于 署名-非商业使用-相同方式分享 2.5 协议,转载须注明链接] 本文所述Ab命令已由管理员在Debian、Centos两个系统中实际操作成功 压力测试是性能...
  • 如何实现对Apache服务器上的资源使用情况进行监控? 2.问题解答 配置LoadRunner监控Apache,LoadRunner监控Apache服务器是调用的Apache自身的模块进行监控的,所以需要配置Apache和LoadRunner。要实现对Apache...
  • apache的日志主要是access_log和error_log,定时有效的将日志进行分割和统计能够减少access_log的大小以及拿到自己的有用的信息。 一、目的 access_log进行分割,把每天的数据单独另存为,同时统计每个ip的访问...
  • 谈谈我对apache+tomcat+jk2整合的理解

    千次阅读 2004-05-07 13:28:00
    整合的目的(完全臆想) ------------------------------------------------------------------------------ apache 和 tomcat都可以做为独立的WEB服务器来用,apache功能强大、高效,但并不能支持JSP及serlet,而...
  • 找到AppServ\Apache2.2\conf下面的httpd.conf里面的:  DirectoryIndex index.php index.html index.htm 然后将里面的内容可以添加。如:  DirectoryIndex index....
  • 使用Apache Bench网站性能进行测试

    千次阅读 2015-10-26 14:54:38
    Apache Bench简称ab,是Apache附带的一个工具,可以用来测试网站性能。通过ab指定命令发送请求后,可以得到每秒传送字节数、每秒处理请求数、每请求处理时间等统计数据。
  • 概述之前写过一篇ArrayList进行分页,介绍如何用JAVA APIArrayList进行分页,下面再介绍另外两种方法。使用Apache工具使用Apache的ListUtils类,一行代码即可解决。import java.util.Arrays; import java.util.List...
  • Apache Flink vs Apache Spark

    千次阅读 2017-09-06 20:45:27
    当我第一次听到Flink的时候这是我是非常怀疑的。在大数据领域,现在已经不缺少...自从Apache Spark出现后,貌似已经成为当今把大部分的问题解决得最好的框架了,所以我另外一款解决类似问题的框架持有很强烈的怀疑态
  • apache 目录进行认证

    千次阅读 2015-06-01 11:19:41
    对于apache 配置如下: 1.修改 httpd.conf 中的虚拟主机配置:添加  Options Indexes FollowSymLinks  AllowOverride AuthConfig  Order allow,deny  Allow from all 2.到
  • Apache POI使用详解

    万次阅读 多人点赞 2017-06-05 20:11:35
    一 :简介开发中经常会设计到excel的处理,如导出Excel,导入Excel...Apache POI 简介是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式Microsoft Office(Excel、WORD、PowerPoint、Visio等
  • SpringBoot进行Apache性能压测

    千次阅读 2019-05-31 11:09:46
    性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是...
  • 通过浏览器访问,可以看到apache确实响应头进行了处理,但是通过反向代理访问的请求,apache却无法其Header进行处理,为什么? 图1是访问apache 本身的资源的响应,可以看到有 MyHeader 字段 图2是访问会被...
  • apache对网站开启外部访问

    千次阅读 2018-03-17 20:58:49
    一个apache的网站只能在服务器里打开,而不能在外网访问,这种情况需要设置“httpd.conf” web\Apache2\conf\httpd.conf web\Apache2\conf\httpd.confAlias /phpMyAdmin "E:/XJ/web/phpMyAdmin" &lt...
  • Hadoop

    千次阅读 2018-09-17 23:47:00
    (1)HADOOP是apache旗下的一套开源软件平台 (2)HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,海量数据进行分布式处理 (3)HADOOP的核心组件有:  HDFS(分布式文件系统) YARN(运算...
  • 配置Apache对CGI的支持

    万次阅读 2012-04-10 08:46:38
    在http.conf或 /etc/apache2/mods-enable/cgi.load 文件里,(我的是在目录/usr/local/apache2/conf/下面的http.conf)加入CGI支持: LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so //默认有则不...
  • 配置apache对 https 的支持

    千次阅读 2015-02-03 17:45:03
    要使Apache支持SSL,需要首先安装Openssl支持。这里使用的是openssl-0.9.8k.tar.gz 下载Openssl:http://www.openssl.org/source/ tar -zxf openssl-0.9.8k.tar.gz //解压安装包 cd openssl-0.9.8k //进入已经...

空空如也

1 2 3 4 5 ... 20
收藏数 39,821
精华内容 15,928
关键字:

对apache