H2O is known as HTTP(HTTP/2) Server of new era.
This is simple install log for H2O with php-fpm.
Build Environment:
Amazon Linux AMI 2015.09 (HVM), SSD Volume Type - ami-9a2fb89a
c4.xlarge + EBS (General Purpose SSD) 100GB
Install some librarys
# yum -y groupinstall "Development Tools" # yum -y install libyaml-devel openssl-devel cmake httpd-tools php56-fpm php56-opcacheInstall libuv
# cd /var/tmp # git clone https://github.com/libuv/libuv.git # cd libuv # ./autogen.sh # ./configure --prefix=/usr/local/libuv # make -j 4 # make installInstall H2O
# cd /var/tmp # git clone https://github.com/h2o/h2o.git # cd h2o/ # PKG_CONFIG_PATH=/usr/local/libuv/lib/pkgconfig/ cmake -DWITH_BUNDLED_SSL=on -DCMAKE_INSTALL_PREFIX=/usr/local/h2o . # make -j 4 # make install # ln -s /usr/local/h2o/bin/h2o /usr/bin/h2o # h2o -v h2o version 1.5.0 OpenSSL: LibreSSL 2.2.2 mruby: YESSet config file for h2o with php-fpm
# emacs /etc/h2o.conf pid-file: /var/run/h2o.pid user: nobody error-log: /var/log/h2o.error.log access-log: /var/log/h2o.access.log listen: 80 # php-fpm file.custom-handler: extension: .php fastcgi.connect: host: 127.0.0.1 port: 9000 type: tcp # Directory Index file.index: [ 'index.php', 'index.html' ] # Hosts hosts: "localhost:80": paths: /: # www root file.dir: /var/h2o file.dirlisting: onMake test php file
# mkdir /var/h2o/ # echo '<?php print 1;' > /var/h2o/index.phpStart php-fpm
# service php-fpm startStart H2O
# h2o -m daemon -c /etc/h2o.confCheck
# curl -v http://localhost/ * Trying 127.0.0.1... * Connected to localhost (127.0.0.1) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.40.0 > Host: localhost > Accept: */* > < HTTP/1.1 200 OK < Date: Fri, 02 Oct 2015 09:33:44 GMT < Server: h2o/1.5.0 < Connection: keep-alive < x-powered-by: PHP/5.6.13 < content-type: text/html; charset=UTF-8 < transfer-encoding: chunked < * Connection #0 to host localhost left intact 1Do Apache Bench
# ab -c 10 -n 10000 http://localhost/ This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software: h2o/1.5.0 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 1 bytes Concurrency Level: 10 Time taken for tests: 0.644 seconds Complete requests: 10000 Failed requests: 0 Write errors: 0 Total transferred: 1610000 bytes HTML transferred: 10000 bytes Requests per second: 15521.42 [#/sec] (mean) Time per request: 0.644 [ms] (mean) Time per request: 0.064 [ms] (mean, across all concurrent requests) Transfer rate: 2440.38 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 0 Processing: 0 1 0.3 0 3 Waiting: 0 0 0.3 0 3 Total: 0 1 0.3 1 3 ERROR: The median and mean for the processing time are more than twice the standard deviation apart. These results are NOT reliable. Percentage of the requests served within a certain time (ms) 50% 1 66% 1 75% 1 80% 1 90% 1 95% 1 98% 1 99% 2 100% 3 (longest request)Stop H2O
# kill -TERM `cat /var/run/h2o.pid`
Title pic from yonolatengo H2O......Go