使ApacheBench支持multi-url的方法
                (编辑:jimmy 日期: 2025/10/31 浏览:3 次 )
            
            
            由于标准的ab只支持对单个uri进行压测,不满足实际需要,故做以下修改,使ab支持multi-url。
1、下载Apache httpd相关源码包以及针对ab工具的patch包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.5.tar.gz wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.37.tar.gz wget https://github.com/philipgloyne/apachebench-for-multi-url/archive/master.zip
注:httpd依赖于apr和apr-util
2、编译安装apr
tar -zxf apr-1.6.5.tar.gz cd apr-1.6.5 ./configure --prefix=/usr/local/apr make && make install
3、编译安装apr-util
tar -zxf apr-util-1.6.1.tar.gz cd apr-util-1.6.1 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install
4、替换httpd源码里面的ab.c文件
unzip master.zip tar -zxf httpd-2.4.37.tar.gz \cp ./apachebench-for-multi-url-master/ab.c ./httpd-2.4.37/support/
5、编译安装httpd
cd httpd-2.4.37 ./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-mpm=prefork --enable-modules=most --enable-mpms-shared=all make && make install
6、验证结果
#/usr/local/apache/bin/ab -h
Usage: /usr/local/apache/bin/ab [options] [http[s]://]hostname[:port]/path
Options are:
  -n requests   Number of requests to perform
  -c concurrency Number of multiple requests to make
  -t timelimit  Seconds to max. wait for responses
  -b windowsize  Size of TCP send/receive buffer, in bytes
  -p postfile   File containing data to POST. Remember also to set -T
  -u putfile   File containing data to PUT. Remember also to set -T
  -T content-type Content-type header for POSTing, eg.
          'application/x-www-form-urlencoded'
          Default is 'text/plain'
  -v verbosity  How much troubleshooting info to print
  -w       Print out results in HTML tables
  -i       Use HEAD instead of GET
  -x attributes  String to insert as table attributes
  -y attributes  String to insert as tr attributes
  -z attributes  String to insert as td or th attributes
  -C attribute  Add cookie, eg. 'Apache=1234. (repeatable)
  -H attribute  Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
          Inserted after all normal header lines. (repeatable)
  -A attribute  Add Basic WWW Authentication, the attributes
          are a colon separated username and password.
  -P attribute  Add Basic Proxy Authentication, the attributes
          are a colon separated username and password.
  -X proxy:port  Proxyserver and port number to use
  -V       Print version number and exit
  -k       Use HTTP KeepAlive feature
  -d       Do not show percentiles served table.
  -S       Do not show confidence estimators and warnings.
  -g filename   Output collected data to gnuplot format file.
  -e filename   Output CSV file with percentages served
  -r       Don't exit on socket receive errors.
  -h       Display usage information (this message)
  -L       Use URL list file name, eg. url.txt
  -Z ciphersuite Specify SSL/TLS cipher suite (See openssl ciphers)
  -f protocol   Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL)
可以看到ab已经支持-L参数(上面帮助信息的倒数第3行),大功告成。
下一篇:docker容器中布置静态网站的实现