SlideShare a Scribd company logo
1 of 45
Download to read offline
APACHECON North America
9-12 September, 2019
Apache httpd v2.4:
Review and Overview
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Thanks
Twitter: @jimjag
Emails:

jim@jaguNET.com

jim@apache.org

jimjag@gmail.com
http://www.slideshare.net/jimjag/
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
About Me
Apache Software Foundation
Co-founder, Director Emeritus, Member and Developer
Director Emeritus
Outercurve, MARSEC-XL, OSSI, OSI (ex)…
Developer
Mega FOSS projects
O’Reilly Open Source Award: 2013
European Commission: Luminary Award
InterCon: Top 50 Tech Leaders of 2019
Homebrewer, Husband, Father, Friend
Open Source Chef: ConsenSys
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
About Me
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
httpd is sooo old school (aka fud)
Apache doesn’t scale (its SLOW)
http://www.youtube.com/watch?v=bzkRVzciAZg



Apache is too generalized





Apache is too complex (config file)
really?
Apache is too old

(yeah, just like Linux)
vs
It’s Squagels!
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Apache httpd 2.4 - major coolness
New features and improve old ones
Support for async I/O w/o dropping support for older systems
Larger selection of usable MPMs: added Event, Motorz, etc...
Leverage higher-performant versions of APR
Increase performance
Reduce memory utilization
The Cloud
Still fully and completely OPEN SOURCE
Currently at version 2.4.41 (2.4.1 went GA Feb 21, 2012)
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Apache httpd 2.4.41
Ignore the version number!
Patch release is almost always also a feature release
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Apache httpd 2.4 notable features
Configuration / Runtime Improvements
New Modules / Capabilities
Cloud / Proxy Enhancements
Performance Increases
HTTP/2
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Configuration - Runtime
mod_macro
<Macro VHost $name $domain>
<VirtualHost *:80>
ServerName $domain
ServerAlias www.$domain
DocumentRoot /var/www/vhosts/$name
ErrorLog /var/log/httpd/$name.error_log
CustomLog /var/log/httpd/$name.access_log combined
</VirtualHost>
</Macro>
Use VHost example example.com
Use VHost myhost hostname.org
Use VHost apache apache.org
UndefMacro VHost
From my
ApacheCon 2000
Preso
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Configuration - Runtime
Simple config-file variables: <Define>
You can define these programmatically or via httpd -D
<IfDefine TEST>
Define servername test.example.com
</IfDefine>
<IfDefine !TEST>
Define servername www.example.com
Define SSL
</IfDefine>
DocumentRoot /var/www/${servername}/htdocs
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Configuration - Runtime
<If> supports per-request conditions
# Compare the host name to example.com and
# redirect to www.example.com if it matches
<If "%{HTTP_HOST} == 'example.com'">
Redirect permanent / http://www.example.com/
<ElseIf "%{HTTP_HOST} == ‘foobarfoo.com'">
Redirect permanent / http://www2.example.com/
</If>
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Configuration - Runtime
Finer control of timeouts, esp. during requests
mod_reqtimeout
KeepAliveTimout down to the millisecond
Finer control over logging
per module/per directory
new logging levels (TRACE[1-8])
LogLevel info ssl:warn
<Directory "/usr/local/apache/htdocs/foo">
LogLevel debug
</Directory>
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Configuration - Runtime
Other stuff:
No more NameVirtualHost
General purpose expression parser (BNF compatible)
AllowOverrideList





Loadable MPM modules
Recall that different MPMs have different config directives!
AllowOverride None
AllowOverrideList Redirect RedirectMatch Header
./configure —enable-mpms-shared=all
LoadModule mpm_event_module modules/mod_mpm_event.so
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Configuration - Runtime
Require
Removes order deny/allow insanity!
mod_access_compat for backwards combat
AuthType Basic
AuthName "Restricted Resource"
AuthBasicProvider file
AuthUserFile /web/users
AuthGroupFile /web/groups
Require group admin
<Directory /www/docs>
<RequireAll>
Require group alpha beta
Require not group reject
</RequireAll>
</Directory>
<Directory /www/docs2>
Require all granted
</Directory>
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
New Modules
mod_lua
<Files *.lua>
SetHandler lua-script
</Files>
…
example.lua
require "string"
function handle(r)
r.content_type = "text/plain"
if r.method == 'GET' then
r:puts("Hello Lua World!n")
for k, v in pairs( r:parseargs() ) do
r:puts( string.format("%s: %sn", k, v) )
end
elseif r.method == 'POST' then
r:puts("Hello Lua World!n")
for k, v in pairs( r:parsebody() ) do
r:puts( string.format("%s: %sn", k, v) )
end
elseif r.method == 'PUT' then
r:puts("Unsupported HTTP method " .. r.method)
r.status = 405
return apache2.ok
else
return 501
end
return apache2.OK
end
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
New Modules
mod_buffer
buffer the i/o stacks w/i httpd
mod_sed
True sed functionality, alternate to mod_substitute





mod_remoteip
allow access to the real client IP address
Also provides HA PROXY support
<Directory "/var/www/docs/status">
AddOutputFilter Sed html
OutputSed "s/complete/DONE/g"
OutputSed “s/in-progress/TODO/g"
</Directory>
RemoteIPHeader X-Client-IP
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
New Modules
mod_session
easily maintain application server state
mod_auth_form
Form-based auth can now be handled internally
<Location /dologin.html>
SetHandler form-login-handler
AuthFormLoginRequiredLocation http://example.com/login.html
AuthFormLoginSuccessLocation http://example.com/success.html
AuthFormProvider file
AuthUserFile conf/passwd
AuthType form
AuthName realm
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret
</Location>
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
New Modules
mod_log_debug
Add debug logging at any hook





mod_ratelimit
(basic) bandwidth limiting for clients
<Location /foo>
LogMessage “subreq to foo” hook=type_checker expr=%{IS_SUBREQ}
</Location>
<Location /downloads>
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 400
</Location>
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Even more!
mod_cache
Can serve stale data if required
X-Cache-Header now supports HIT/MISS/REVALIDATE
Can cache HEAD
htcacheclean improvements
Redis and memcached (And Apache Geode)
mod_socache / mod_slotmem
Data object/blog storage mechanisms
mod_brotli
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
New Modules
mod_proxy submodules:
mod_proxy_fcgi
mod_proxy_scgi
mod_proxy_uwsgi
mod_proxy_wstunnel
mod_proxy_html
mod_proxy_express
mod_proxy_hcheck
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Cloud and Performance
The Cloud is a game changer for web servers
Horizontal scalability is no longer as painful
Concurrency is no longer the sole consideration
... or maybe even the primary one
What’s important now? Transaction Time! (because it CAN be)
Low latency
Fast req/resp turnover
Does density still matter? Of course!
micro-services
Are there environs where super-mega concurrency is the bugaboo? You
betcha! (but the cloud makes these more and more rare, and you’re likely using a bad architecture anyway)
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Cloud and Dynamics
The Cloud is a game changer for web servers
The cloud is a dynamic place
automated reconfiguration
horizontal, not vertical scaling
self-aware environments
OK, maybe not THAT self-aware
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Why Dynamic Proxy Matters
Apache httpd still the most frequently used front-end
Proxy capabilities must be cloud friendly
Front-end must be dynamic friendly
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Apache httpd 2.4 proxy
Reverse Proxy Improvements
Supports FastCGI, SCGI, Websockets in balancer
Additional load balancing mechanisms
Runtime changing of clusters w/o restarts
Support for dynamic configuration
mod_proxy_express
mod_fcgid and fcgistarter
Support for Unix Domain Sockets
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Backend Status
Dynamic Health Checks !
TCP/IP Ping
OPTIONS
HEAD
GET
ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
ProxyHCExpr gdown {%{REQUEST_STATUS} =~ /^[5]/}
ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/}
<Proxy balancer://foo/>
BalancerMember http://www.example.com/ hcmethod=GET hcexpr=in_maint hcuri=/status.php
BalancerMember http://www2.example.com/ hcmethod=HEAD hcexpr=ok234 hcinterval=10
BalancerMember http://www3.example.com/ hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3
BalancerMember http://www4.example.com/
</Proxy>
ProxyPass "/" “balancer://foo/"
ProxyPassReverse "/" “balancer://foo/"
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Mass Reverse Proxy
We front-end a LOT of reverse proxies
What a httpd.conf disaster!
Slow and bloated
mod_rewrite doesn’t help
<VirtualHost www1.example.com>
ProxyPass / http://192.168.002.2:8080
ProxyPassReverse / http://192.168.002.2:8080
</VirtualHost>


<VirtualHost www2.example.com>
ProxyPass / http://192.168.002.12:8088

ProxyPassReverse / http://192.168.002.12:8088
</VirtualHost>
<VirtualHost www3.example.com>
ProxyPass / http://192.168.002.10
ProxyPassReverse / http://192.168.002.10
</VirtualHost>
...
<VirtualHost www6341.example.com>
ProxyPass / http://192.168.211.26
ProxyPassReverse / http://192.168.211.26
</VirtualHost>
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Mass Reverse Proxy
Use the new mod_proxy_express module
ProxyPass mapping obtained via db file
Fast and efficient
Still dynamic, with no config changes required
micro-services? You betcha!
ProxyExpress map file
##

##express-map.db:

##



www1.example.com http://192.168.002.2:8080

www2.example.com http://192.168.002.12:8088

www3.example.com http://192.168.002.10
...
www6341.example.com http://192.168.211.26
httpd.conf file
ProxyExpressEnable On
ProxyExpressDBMFile express-map.db
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Embedded Admin
Allows for real-time
Addition of new workers/nodes
Change of LB methods
Can be persistent!
More RESTful
Can be CLI-driven
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Easy setup
<Location /balancer-manager>
SetHandler balancer-manager
Require 192.168.2.22
</Location>
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Admin
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
server-status aware
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Performance
From Nic Rosenthal Battle of the stacks

(http://www.slideshare.net/AllThingsOpen/battle-of-the-stacks)
HHVM + NGINX!
!
vs!
!
HHVM + Apache 2.4!
!
http://ldr.io/1ogvD7X
http://ldr.io/1ogD7b3
Response time: 76ms
Response time: 60ms
HHVM + NGINX
HHVM + Apache 2.4
Image by Articularnos.com https://www.flickr.com/photos/articularnos/
Champion of the !
Battle Of The Stacks
ATO Edition
HHVM + Apache 2.4
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Performance
From Bryan Call’s ApacheCon preso

(http://www.slideshare.net/bryan_call/choosing-a-proxy-server-apachecon-2014)
•  Squid&used&the&most&
CPU&again&
•  NGiNX&had&latency&
issues&
•  ATS&most&throughput& 0&
500&
1000&
1500&
2000&
2500&
ATS& NGiNX& Squid& Varnish& hBpd&
RPS$/$CPU$Usage$
0&
5000&
10000&
15000&
20000&
25000&
30000&
ATS& NGiNX& Squid& Varnish& hBpd&
Requests$Per$Second$
0&
5&
10&
15&
20&
25&
30&
35&
40&
ATS& NGiNX& Squid& Varnish& hBpd&
Latency$
Median&
95th&
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Raw Performance
Event MPM : no longer experimental
non-blocking
async
Default MPM
Faster, more efficient APR
Smaller memory footprint
More efficient data structures (worker and event)
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Setup
loopbackSetup 1:
Setup 2:
Setup 3:
Setup 3:
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Considerations
Multiple benchmarking systems:
flood (50/250/5/2, 50/100/5/2, 50/5/5/2)
httperf (num-conns=100->20000, numcalls=3,10,100,10000)
weighttp
Full URL requests (www.example.com/index.html)
Static local requests
Static reverse proxy requests
All Apache httpd MPMs
No significant “tuning” efforts (mostly out of the box configs)
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
nginx vs Event (typical)
Apache - Event MPM
0
500
1000
1500
2000
nginx
0
500
1,000
1,500
2,000
Open Write Read Close
Increasing concurrency Increasing concurrency
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Apache - Prefork MPM
0
500
1000
1500
2000
nginx vs Prefork (typical)
nginx
0
500
1,000
1,500
2,000
Open Write Read Close
Increasing concurrency Increasing concurrency
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Total req/resp time
Comparison - total transaction (close)
0
500
1000
1500
2000
Prefork Worker Event nginx
Increasing concurrency
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Resp to Req. Bursts - httperf
100 ---> 20000
0.00
1.75
3.50
5.25
7.00
min avg max dev min avg max dev min avg max dev min avg max dev min avg max dev min avg max dev
prefork worker event nginx
Increasing concurrency
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Independent benchmarks
Source: Ryosuke Matsumoto : http://blog.matsumoto-r.jp/?p=1812
#!/bin/sh
RESULT='./result.txt'
 
for port in 80 8080 8888
do
#for count in 1000 2000 3000 4000 5000 6000 7000 8000 9000
10000
#for count in 11000 12000 13000 14000 15000 16000 17000 18000
19000 20000
for count in 21000 22000 23000 24000 25000 26000 27000 28000
29000 30000
do
echo -n "$port $count " >> $RESULT
httperf --rate $count --num-conns 25000 --server ipaddr --
port $port 
--uri=/test.html | grep "Request rate:" >> $RESULT.
$port
sleep 60
done
done
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Take-away
Today, the web-server isn’t the slow link in the chain.
Benchmarks get stale… fast!
Real world trumps test environs
Choose the right tool for the right job
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
HTTP/2
Implements RFC 7540
Supports both h2 (HTTP/2 over TLS) and h2c (HTTP/2 over TCP[cleartext])
Enterprise-ready regarding stability, performance, etc.
Also supported in mod_proxy
Perfect compliance
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Advanced Security
Support for certificate provisioning via ACME, including ACMEv2 :
Let’s	Encrypt support (mod_md)
TLS 1.3
OpenSSL 1.1.1
APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Thanks
Twitter: @jimjag
Emails:

jim@jaguNET.com

jim@apache.org

jimjag@gmail.com
http://www.slideshare.net/jimjag/
Apache Anniversary Beer Recipe (BeerSmith3 format):
http://home.apache.org/~jim/download/ApacheAnniversaryRoggenbier.bsmx

More Related Content

What's hot

JMS, WebSocket, and the Internet of Things - Controlling Physical Devices on ...
JMS, WebSocket, and the Internet of Things - Controlling Physical Devices on ...JMS, WebSocket, and the Internet of Things - Controlling Physical Devices on ...
JMS, WebSocket, and the Internet of Things - Controlling Physical Devices on ...Peter Moskovits
 
HTML5 WebSocket for the Real-Time Web and the Internet of Things
HTML5 WebSocket for the Real-Time Weband the Internet of ThingsHTML5 WebSocket for the Real-Time Weband the Internet of Things
HTML5 WebSocket for the Real-Time Web and the Internet of ThingsPeter Moskovits
 
Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Arun Gupta
 
HTML5 WebSocket Introduction
HTML5 WebSocket IntroductionHTML5 WebSocket Introduction
HTML5 WebSocket IntroductionMarcelo Jabali
 
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)Peter Lubbers
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Tammy Everts
 
Csdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer YahooCsdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer Yahooguestb1b95b
 
Hacking Web Performance @ ForwardJS 2017
Hacking Web Performance @ ForwardJS 2017Hacking Web Performance @ ForwardJS 2017
Hacking Web Performance @ ForwardJS 2017Maximiliano Firtman
 
Velocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youVelocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youPatrick Meenan
 
Measuring web performance
Measuring web performanceMeasuring web performance
Measuring web performancePatrick Meenan
 
Disrupting the application eco system with progressive web applications
Disrupting the application eco system with progressive web applicationsDisrupting the application eco system with progressive web applications
Disrupting the application eco system with progressive web applicationsChris Love
 
Edi ux fastandbeautiful
Edi ux fastandbeautifulEdi ux fastandbeautiful
Edi ux fastandbeautifulDoug Sillars
 
Advanced Caching Concepts @ Velocity NY 2015
Advanced Caching Concepts @ Velocity NY 2015Advanced Caching Concepts @ Velocity NY 2015
Advanced Caching Concepts @ Velocity NY 2015Rakesh Chaudhary
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScalePatrick Chanezon
 
Economies of Scaling Software
Economies of Scaling SoftwareEconomies of Scaling Software
Economies of Scaling SoftwareJoshua Long
 
Hyperlight Websites - Chris Zacharias
Hyperlight Websites - Chris ZachariasHyperlight Websites - Chris Zacharias
Hyperlight Websites - Chris ZachariasChristopher Zacharias
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站areyouok
 

What's hot (20)

JMS, WebSocket, and the Internet of Things - Controlling Physical Devices on ...
JMS, WebSocket, and the Internet of Things - Controlling Physical Devices on ...JMS, WebSocket, and the Internet of Things - Controlling Physical Devices on ...
JMS, WebSocket, and the Internet of Things - Controlling Physical Devices on ...
 
HTML5 WebSocket for the Real-Time Web and the Internet of Things
HTML5 WebSocket for the Real-Time Weband the Internet of ThingsHTML5 WebSocket for the Real-Time Weband the Internet of Things
HTML5 WebSocket for the Real-Time Web and the Internet of Things
 
Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014
 
HTML5 WebSocket Introduction
HTML5 WebSocket IntroductionHTML5 WebSocket Introduction
HTML5 WebSocket Introduction
 
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
 
Csdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer YahooCsdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer Yahoo
 
Hacking Web Performance @ ForwardJS 2017
Hacking Web Performance @ ForwardJS 2017Hacking Web Performance @ ForwardJS 2017
Hacking Web Performance @ ForwardJS 2017
 
Velocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youVelocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and you
 
Measuring web performance
Measuring web performanceMeasuring web performance
Measuring web performance
 
The PRPL Pattern
The PRPL PatternThe PRPL Pattern
The PRPL Pattern
 
Disrupting the application eco system with progressive web applications
Disrupting the application eco system with progressive web applicationsDisrupting the application eco system with progressive web applications
Disrupting the application eco system with progressive web applications
 
Edi ux fastandbeautiful
Edi ux fastandbeautifulEdi ux fastandbeautiful
Edi ux fastandbeautiful
 
Advanced Caching Concepts @ Velocity NY 2015
Advanced Caching Concepts @ Velocity NY 2015Advanced Caching Concepts @ Velocity NY 2015
Advanced Caching Concepts @ Velocity NY 2015
 
High-Speed HTML5
High-Speed HTML5High-Speed HTML5
High-Speed HTML5
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
 
Economies of Scaling Software
Economies of Scaling SoftwareEconomies of Scaling Software
Economies of Scaling Software
 
Hyperlight Websites - Chris Zacharias
Hyperlight Websites - Chris ZachariasHyperlight Websites - Chris Zacharias
Hyperlight Websites - Chris Zacharias
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
Making the web faster
Making the web fasterMaking the web faster
Making the web faster
 

Similar to Apache httpd 2.4 overview

ApacheCon 2017: What's new in httpd 2.4
ApacheCon 2017: What's new in httpd 2.4ApacheCon 2017: What's new in httpd 2.4
ApacheCon 2017: What's new in httpd 2.4Jim Jagielski
 
Apache HTTPD 2.4 - GWO2016
Apache HTTPD 2.4 - GWO2016Apache HTTPD 2.4 - GWO2016
Apache HTTPD 2.4 - GWO2016Jim Jagielski
 
Apache httpd-2.4 : Watch out cloud!
Apache httpd-2.4 : Watch out cloud!Apache httpd-2.4 : Watch out cloud!
Apache httpd-2.4 : Watch out cloud!Jim Jagielski
 
ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4Jim Jagielski
 
ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4Jim Jagielski
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyJim Jagielski
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindSam Keen
 
Front-end optimisation & jQuery Internals
Front-end optimisation & jQuery InternalsFront-end optimisation & jQuery Internals
Front-end optimisation & jQuery InternalsArtur Cistov
 
Joomla! Performance on Steroids
Joomla! Performance on SteroidsJoomla! Performance on Steroids
Joomla! Performance on SteroidsSiteGround.com
 
Apache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse ProxyApache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse ProxyJim Jagielski
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End PerformanceChris Love
 
Make Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedMake Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedAndy Kucharski
 
Front-end optimisation & jQuery Internals (Pycon)
Front-end optimisation & jQuery Internals (Pycon)Front-end optimisation & jQuery Internals (Pycon)
Front-end optimisation & jQuery Internals (Pycon)Artur Cistov
 
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019Viktor Todorov
 
Managing and Monitoring Application Performance
Managing and Monitoring Application PerformanceManaging and Monitoring Application Performance
Managing and Monitoring Application PerformanceSebastian Marek
 
Apache httpd 2.4: The Cloud Killer App
Apache httpd 2.4: The Cloud Killer AppApache httpd 2.4: The Cloud Killer App
Apache httpd 2.4: The Cloud Killer AppJim Jagielski
 
HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?Alessandro Nadalin
 
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoAlessandro Nadalin
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Matthew McCullough
 

Similar to Apache httpd 2.4 overview (20)

ApacheCon 2017: What's new in httpd 2.4
ApacheCon 2017: What's new in httpd 2.4ApacheCon 2017: What's new in httpd 2.4
ApacheCon 2017: What's new in httpd 2.4
 
Apache httpd v2.4
Apache httpd v2.4Apache httpd v2.4
Apache httpd v2.4
 
Apache HTTPD 2.4 - GWO2016
Apache HTTPD 2.4 - GWO2016Apache HTTPD 2.4 - GWO2016
Apache HTTPD 2.4 - GWO2016
 
Apache httpd-2.4 : Watch out cloud!
Apache httpd-2.4 : Watch out cloud!Apache httpd-2.4 : Watch out cloud!
Apache httpd-2.4 : Watch out cloud!
 
ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4
 
ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
 
Front-end optimisation & jQuery Internals
Front-end optimisation & jQuery InternalsFront-end optimisation & jQuery Internals
Front-end optimisation & jQuery Internals
 
Joomla! Performance on Steroids
Joomla! Performance on SteroidsJoomla! Performance on Steroids
Joomla! Performance on Steroids
 
Apache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse ProxyApache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse Proxy
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End Performance
 
Make Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedMake Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speed
 
Front-end optimisation & jQuery Internals (Pycon)
Front-end optimisation & jQuery Internals (Pycon)Front-end optimisation & jQuery Internals (Pycon)
Front-end optimisation & jQuery Internals (Pycon)
 
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
 
Managing and Monitoring Application Performance
Managing and Monitoring Application PerformanceManaging and Monitoring Application Performance
Managing and Monitoring Application Performance
 
Apache httpd 2.4: The Cloud Killer App
Apache httpd 2.4: The Cloud Killer AppApache httpd 2.4: The Cloud Killer App
Apache httpd 2.4: The Cloud Killer App
 
HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?
 
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2
 

More from Jim Jagielski

OSPOS: AllThingsOpen 2023
OSPOS: AllThingsOpen 2023OSPOS: AllThingsOpen 2023
OSPOS: AllThingsOpen 2023Jim Jagielski
 
Open Source Licenses and IP Overview
Open Source Licenses and IP OverviewOpen Source Licenses and IP Overview
Open Source Licenses and IP OverviewJim Jagielski
 
Starting an Open Source Program Office
Starting an Open Source Program OfficeStarting an Open Source Program Office
Starting an Open Source Program OfficeJim Jagielski
 
InnerSource 101 for FinTech and FinServ
InnerSource 101 for FinTech and FinServInnerSource 101 for FinTech and FinServ
InnerSource 101 for FinTech and FinServJim Jagielski
 
All Things Open 2017: Open Source Licensing
All Things Open 2017: Open Source LicensingAll Things Open 2017: Open Source Licensing
All Things Open 2017: Open Source LicensingJim Jagielski
 
All Things Open 2017: Foundations of Inner Source
All Things Open 2017: Foundations of Inner SourceAll Things Open 2017: Foundations of Inner Source
All Things Open 2017: Foundations of Inner SourceJim Jagielski
 
ApacheCon 2017: InnerSource and The Apache Way
ApacheCon 2017: InnerSource and The Apache WayApacheCon 2017: InnerSource and The Apache Way
ApacheCon 2017: InnerSource and The Apache WayJim Jagielski
 
Open Source Licensing 101
Open Source Licensing 101Open Source Licensing 101
Open Source Licensing 101Jim Jagielski
 
InnerSource 101 and The Apache Way
InnerSource 101 and The Apache WayInnerSource 101 and The Apache Way
InnerSource 101 and The Apache WayJim Jagielski
 
Open source101 licenses
Open source101 licensesOpen source101 licenses
Open source101 licensesJim Jagielski
 
Keynote from the Open Source 101 Conference
Keynote from the Open Source 101 ConferenceKeynote from the Open Source 101 Conference
Keynote from the Open Source 101 ConferenceJim Jagielski
 
InnerSource: Enterprise Lessons from Open Source
InnerSource: Enterprise Lessons from Open SourceInnerSource: Enterprise Lessons from Open Source
InnerSource: Enterprise Lessons from Open SourceJim Jagielski
 
ApacheCon EU 2016 State of the Feather
ApacheCon EU 2016 State of the FeatherApacheCon EU 2016 State of the Feather
ApacheCon EU 2016 State of the FeatherJim Jagielski
 
Open Source Licensing and Governance
Open Source Licensing and GovernanceOpen Source Licensing and Governance
Open Source Licensing and GovernanceJim Jagielski
 
Inner Source: Enterprise Lessons from the Open Source Community.
Inner Source: Enterprise Lessons from the Open Source Community.Inner Source: Enterprise Lessons from the Open Source Community.
Inner Source: Enterprise Lessons from the Open Source Community.Jim Jagielski
 
The Apache Way: Why we do what we do
The Apache Way: Why we do what we doThe Apache Way: Why we do what we do
The Apache Way: Why we do what we doJim Jagielski
 
Why Community Matters
Why Community MattersWhy Community Matters
Why Community MattersJim Jagielski
 
Inner Source 101 - GWO2016
Inner Source 101 - GWO2016Inner Source 101 - GWO2016
Inner Source 101 - GWO2016Jim Jagielski
 
Open Source 101 - GWO2016
Open Source 101 - GWO2016Open Source 101 - GWO2016
Open Source 101 - GWO2016Jim Jagielski
 

More from Jim Jagielski (20)

OSPOS: AllThingsOpen 2023
OSPOS: AllThingsOpen 2023OSPOS: AllThingsOpen 2023
OSPOS: AllThingsOpen 2023
 
Open Source Licenses and IP Overview
Open Source Licenses and IP OverviewOpen Source Licenses and IP Overview
Open Source Licenses and IP Overview
 
The Apache Way
The Apache WayThe Apache Way
The Apache Way
 
Starting an Open Source Program Office
Starting an Open Source Program OfficeStarting an Open Source Program Office
Starting an Open Source Program Office
 
InnerSource 101 for FinTech and FinServ
InnerSource 101 for FinTech and FinServInnerSource 101 for FinTech and FinServ
InnerSource 101 for FinTech and FinServ
 
All Things Open 2017: Open Source Licensing
All Things Open 2017: Open Source LicensingAll Things Open 2017: Open Source Licensing
All Things Open 2017: Open Source Licensing
 
All Things Open 2017: Foundations of Inner Source
All Things Open 2017: Foundations of Inner SourceAll Things Open 2017: Foundations of Inner Source
All Things Open 2017: Foundations of Inner Source
 
ApacheCon 2017: InnerSource and The Apache Way
ApacheCon 2017: InnerSource and The Apache WayApacheCon 2017: InnerSource and The Apache Way
ApacheCon 2017: InnerSource and The Apache Way
 
Open Source Licensing 101
Open Source Licensing 101Open Source Licensing 101
Open Source Licensing 101
 
InnerSource 101 and The Apache Way
InnerSource 101 and The Apache WayInnerSource 101 and The Apache Way
InnerSource 101 and The Apache Way
 
Open source101 licenses
Open source101 licensesOpen source101 licenses
Open source101 licenses
 
Keynote from the Open Source 101 Conference
Keynote from the Open Source 101 ConferenceKeynote from the Open Source 101 Conference
Keynote from the Open Source 101 Conference
 
InnerSource: Enterprise Lessons from Open Source
InnerSource: Enterprise Lessons from Open SourceInnerSource: Enterprise Lessons from Open Source
InnerSource: Enterprise Lessons from Open Source
 
ApacheCon EU 2016 State of the Feather
ApacheCon EU 2016 State of the FeatherApacheCon EU 2016 State of the Feather
ApacheCon EU 2016 State of the Feather
 
Open Source Licensing and Governance
Open Source Licensing and GovernanceOpen Source Licensing and Governance
Open Source Licensing and Governance
 
Inner Source: Enterprise Lessons from the Open Source Community.
Inner Source: Enterprise Lessons from the Open Source Community.Inner Source: Enterprise Lessons from the Open Source Community.
Inner Source: Enterprise Lessons from the Open Source Community.
 
The Apache Way: Why we do what we do
The Apache Way: Why we do what we doThe Apache Way: Why we do what we do
The Apache Way: Why we do what we do
 
Why Community Matters
Why Community MattersWhy Community Matters
Why Community Matters
 
Inner Source 101 - GWO2016
Inner Source 101 - GWO2016Inner Source 101 - GWO2016
Inner Source 101 - GWO2016
 
Open Source 101 - GWO2016
Open Source 101 - GWO2016Open Source 101 - GWO2016
Open Source 101 - GWO2016
 

Recently uploaded

SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Internet of Things Presentation (IoT).pptx
Internet of Things Presentation (IoT).pptxInternet of Things Presentation (IoT).pptx
Internet of Things Presentation (IoT).pptxErYashwantJagtap
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationMarko4394
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Unidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxUnidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxmibuzondetrabajo
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 

Recently uploaded (17)

SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Internet of Things Presentation (IoT).pptx
Internet of Things Presentation (IoT).pptxInternet of Things Presentation (IoT).pptx
Internet of Things Presentation (IoT).pptx
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentation
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Unidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxUnidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptx
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 

Apache httpd 2.4 overview

  • 1. APACHECON North America 9-12 September, 2019 Apache httpd v2.4: Review and Overview
  • 2. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Thanks Twitter: @jimjag Emails:
 jim@jaguNET.com
 jim@apache.org
 jimjag@gmail.com http://www.slideshare.net/jimjag/
  • 3. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag About Me Apache Software Foundation Co-founder, Director Emeritus, Member and Developer Director Emeritus Outercurve, MARSEC-XL, OSSI, OSI (ex)… Developer Mega FOSS projects O’Reilly Open Source Award: 2013 European Commission: Luminary Award InterCon: Top 50 Tech Leaders of 2019 Homebrewer, Husband, Father, Friend Open Source Chef: ConsenSys
  • 4. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag About Me
  • 5. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag httpd is sooo old school (aka fud) Apache doesn’t scale (its SLOW) http://www.youtube.com/watch?v=bzkRVzciAZg
 
 Apache is too generalized
 
 
 Apache is too complex (config file) really? Apache is too old
 (yeah, just like Linux) vs It’s Squagels!
  • 6. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Apache httpd 2.4 - major coolness New features and improve old ones Support for async I/O w/o dropping support for older systems Larger selection of usable MPMs: added Event, Motorz, etc... Leverage higher-performant versions of APR Increase performance Reduce memory utilization The Cloud Still fully and completely OPEN SOURCE Currently at version 2.4.41 (2.4.1 went GA Feb 21, 2012)
  • 7. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Apache httpd 2.4.41 Ignore the version number! Patch release is almost always also a feature release
  • 8. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Apache httpd 2.4 notable features Configuration / Runtime Improvements New Modules / Capabilities Cloud / Proxy Enhancements Performance Increases HTTP/2
  • 9. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Configuration - Runtime mod_macro <Macro VHost $name $domain> <VirtualHost *:80> ServerName $domain ServerAlias www.$domain DocumentRoot /var/www/vhosts/$name ErrorLog /var/log/httpd/$name.error_log CustomLog /var/log/httpd/$name.access_log combined </VirtualHost> </Macro> Use VHost example example.com Use VHost myhost hostname.org Use VHost apache apache.org UndefMacro VHost From my ApacheCon 2000 Preso
  • 10. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Configuration - Runtime Simple config-file variables: <Define> You can define these programmatically or via httpd -D <IfDefine TEST> Define servername test.example.com </IfDefine> <IfDefine !TEST> Define servername www.example.com Define SSL </IfDefine> DocumentRoot /var/www/${servername}/htdocs
  • 11. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Configuration - Runtime <If> supports per-request conditions # Compare the host name to example.com and # redirect to www.example.com if it matches <If "%{HTTP_HOST} == 'example.com'"> Redirect permanent / http://www.example.com/ <ElseIf "%{HTTP_HOST} == ‘foobarfoo.com'"> Redirect permanent / http://www2.example.com/ </If>
  • 12. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Configuration - Runtime Finer control of timeouts, esp. during requests mod_reqtimeout KeepAliveTimout down to the millisecond Finer control over logging per module/per directory new logging levels (TRACE[1-8]) LogLevel info ssl:warn <Directory "/usr/local/apache/htdocs/foo"> LogLevel debug </Directory>
  • 13. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Configuration - Runtime Other stuff: No more NameVirtualHost General purpose expression parser (BNF compatible) AllowOverrideList
 
 
 Loadable MPM modules Recall that different MPMs have different config directives! AllowOverride None AllowOverrideList Redirect RedirectMatch Header ./configure —enable-mpms-shared=all LoadModule mpm_event_module modules/mod_mpm_event.so
  • 14. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Configuration - Runtime Require Removes order deny/allow insanity! mod_access_compat for backwards combat AuthType Basic AuthName "Restricted Resource" AuthBasicProvider file AuthUserFile /web/users AuthGroupFile /web/groups Require group admin <Directory /www/docs> <RequireAll> Require group alpha beta Require not group reject </RequireAll> </Directory> <Directory /www/docs2> Require all granted </Directory>
  • 15. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag New Modules mod_lua <Files *.lua> SetHandler lua-script </Files> … example.lua require "string" function handle(r) r.content_type = "text/plain" if r.method == 'GET' then r:puts("Hello Lua World!n") for k, v in pairs( r:parseargs() ) do r:puts( string.format("%s: %sn", k, v) ) end elseif r.method == 'POST' then r:puts("Hello Lua World!n") for k, v in pairs( r:parsebody() ) do r:puts( string.format("%s: %sn", k, v) ) end elseif r.method == 'PUT' then r:puts("Unsupported HTTP method " .. r.method) r.status = 405 return apache2.ok else return 501 end return apache2.OK end
  • 16. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag New Modules mod_buffer buffer the i/o stacks w/i httpd mod_sed True sed functionality, alternate to mod_substitute
 
 
 mod_remoteip allow access to the real client IP address Also provides HA PROXY support <Directory "/var/www/docs/status"> AddOutputFilter Sed html OutputSed "s/complete/DONE/g" OutputSed “s/in-progress/TODO/g" </Directory> RemoteIPHeader X-Client-IP
  • 17. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag New Modules mod_session easily maintain application server state mod_auth_form Form-based auth can now be handled internally <Location /dologin.html> SetHandler form-login-handler AuthFormLoginRequiredLocation http://example.com/login.html AuthFormLoginSuccessLocation http://example.com/success.html AuthFormProvider file AuthUserFile conf/passwd AuthType form AuthName realm Session On SessionCookieName session path=/ SessionCryptoPassphrase secret </Location>
  • 18. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag New Modules mod_log_debug Add debug logging at any hook
 
 
 mod_ratelimit (basic) bandwidth limiting for clients <Location /foo> LogMessage “subreq to foo” hook=type_checker expr=%{IS_SUBREQ} </Location> <Location /downloads> SetOutputFilter RATE_LIMIT SetEnv rate-limit 400 </Location>
  • 19. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Even more! mod_cache Can serve stale data if required X-Cache-Header now supports HIT/MISS/REVALIDATE Can cache HEAD htcacheclean improvements Redis and memcached (And Apache Geode) mod_socache / mod_slotmem Data object/blog storage mechanisms mod_brotli
  • 20. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag New Modules mod_proxy submodules: mod_proxy_fcgi mod_proxy_scgi mod_proxy_uwsgi mod_proxy_wstunnel mod_proxy_html mod_proxy_express mod_proxy_hcheck
  • 21. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Cloud and Performance The Cloud is a game changer for web servers Horizontal scalability is no longer as painful Concurrency is no longer the sole consideration ... or maybe even the primary one What’s important now? Transaction Time! (because it CAN be) Low latency Fast req/resp turnover Does density still matter? Of course! micro-services Are there environs where super-mega concurrency is the bugaboo? You betcha! (but the cloud makes these more and more rare, and you’re likely using a bad architecture anyway)
  • 22. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Cloud and Dynamics The Cloud is a game changer for web servers The cloud is a dynamic place automated reconfiguration horizontal, not vertical scaling self-aware environments OK, maybe not THAT self-aware
  • 23. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Why Dynamic Proxy Matters Apache httpd still the most frequently used front-end Proxy capabilities must be cloud friendly Front-end must be dynamic friendly
  • 24. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Apache httpd 2.4 proxy Reverse Proxy Improvements Supports FastCGI, SCGI, Websockets in balancer Additional load balancing mechanisms Runtime changing of clusters w/o restarts Support for dynamic configuration mod_proxy_express mod_fcgid and fcgistarter Support for Unix Domain Sockets
  • 25. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Backend Status Dynamic Health Checks ! TCP/IP Ping OPTIONS HEAD GET ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/} ProxyHCExpr gdown {%{REQUEST_STATUS} =~ /^[5]/} ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/} <Proxy balancer://foo/> BalancerMember http://www.example.com/ hcmethod=GET hcexpr=in_maint hcuri=/status.php BalancerMember http://www2.example.com/ hcmethod=HEAD hcexpr=ok234 hcinterval=10 BalancerMember http://www3.example.com/ hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3 BalancerMember http://www4.example.com/ </Proxy> ProxyPass "/" “balancer://foo/" ProxyPassReverse "/" “balancer://foo/"
  • 26. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Mass Reverse Proxy We front-end a LOT of reverse proxies What a httpd.conf disaster! Slow and bloated mod_rewrite doesn’t help <VirtualHost www1.example.com> ProxyPass / http://192.168.002.2:8080 ProxyPassReverse / http://192.168.002.2:8080 </VirtualHost> 
 <VirtualHost www2.example.com> ProxyPass / http://192.168.002.12:8088
 ProxyPassReverse / http://192.168.002.12:8088 </VirtualHost> <VirtualHost www3.example.com> ProxyPass / http://192.168.002.10 ProxyPassReverse / http://192.168.002.10 </VirtualHost> ... <VirtualHost www6341.example.com> ProxyPass / http://192.168.211.26 ProxyPassReverse / http://192.168.211.26 </VirtualHost>
  • 27. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Mass Reverse Proxy Use the new mod_proxy_express module ProxyPass mapping obtained via db file Fast and efficient Still dynamic, with no config changes required micro-services? You betcha! ProxyExpress map file ##
 ##express-map.db:
 ##
 
 www1.example.com http://192.168.002.2:8080
 www2.example.com http://192.168.002.12:8088
 www3.example.com http://192.168.002.10 ... www6341.example.com http://192.168.211.26 httpd.conf file ProxyExpressEnable On ProxyExpressDBMFile express-map.db
  • 28. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Embedded Admin Allows for real-time Addition of new workers/nodes Change of LB methods Can be persistent! More RESTful Can be CLI-driven
  • 29. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Easy setup <Location /balancer-manager> SetHandler balancer-manager Require 192.168.2.22 </Location>
  • 30. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Admin
  • 31. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag server-status aware
  • 32. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Performance From Nic Rosenthal Battle of the stacks
 (http://www.slideshare.net/AllThingsOpen/battle-of-the-stacks) HHVM + NGINX! ! vs! ! HHVM + Apache 2.4! ! http://ldr.io/1ogvD7X http://ldr.io/1ogD7b3 Response time: 76ms Response time: 60ms HHVM + NGINX HHVM + Apache 2.4 Image by Articularnos.com https://www.flickr.com/photos/articularnos/ Champion of the ! Battle Of The Stacks ATO Edition HHVM + Apache 2.4
  • 33. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Performance From Bryan Call’s ApacheCon preso
 (http://www.slideshare.net/bryan_call/choosing-a-proxy-server-apachecon-2014) •  Squid&used&the&most& CPU&again& •  NGiNX&had&latency& issues& •  ATS&most&throughput& 0& 500& 1000& 1500& 2000& 2500& ATS& NGiNX& Squid& Varnish& hBpd& RPS$/$CPU$Usage$ 0& 5000& 10000& 15000& 20000& 25000& 30000& ATS& NGiNX& Squid& Varnish& hBpd& Requests$Per$Second$ 0& 5& 10& 15& 20& 25& 30& 35& 40& ATS& NGiNX& Squid& Varnish& hBpd& Latency$ Median& 95th&
  • 34. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Raw Performance Event MPM : no longer experimental non-blocking async Default MPM Faster, more efficient APR Smaller memory footprint More efficient data structures (worker and event)
  • 35. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Setup loopbackSetup 1: Setup 2: Setup 3: Setup 3:
  • 36. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Considerations Multiple benchmarking systems: flood (50/250/5/2, 50/100/5/2, 50/5/5/2) httperf (num-conns=100->20000, numcalls=3,10,100,10000) weighttp Full URL requests (www.example.com/index.html) Static local requests Static reverse proxy requests All Apache httpd MPMs No significant “tuning” efforts (mostly out of the box configs)
  • 37. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag nginx vs Event (typical) Apache - Event MPM 0 500 1000 1500 2000 nginx 0 500 1,000 1,500 2,000 Open Write Read Close Increasing concurrency Increasing concurrency
  • 38. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Apache - Prefork MPM 0 500 1000 1500 2000 nginx vs Prefork (typical) nginx 0 500 1,000 1,500 2,000 Open Write Read Close Increasing concurrency Increasing concurrency
  • 39. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Total req/resp time Comparison - total transaction (close) 0 500 1000 1500 2000 Prefork Worker Event nginx Increasing concurrency
  • 40. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Resp to Req. Bursts - httperf 100 ---> 20000 0.00 1.75 3.50 5.25 7.00 min avg max dev min avg max dev min avg max dev min avg max dev min avg max dev min avg max dev prefork worker event nginx Increasing concurrency
  • 41. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Independent benchmarks Source: Ryosuke Matsumoto : http://blog.matsumoto-r.jp/?p=1812 #!/bin/sh RESULT='./result.txt'   for port in 80 8080 8888 do #for count in 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 #for count in 11000 12000 13000 14000 15000 16000 17000 18000 19000 20000 for count in 21000 22000 23000 24000 25000 26000 27000 28000 29000 30000 do echo -n "$port $count " >> $RESULT httperf --rate $count --num-conns 25000 --server ipaddr -- port $port --uri=/test.html | grep "Request rate:" >> $RESULT. $port sleep 60 done done
  • 42. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Take-away Today, the web-server isn’t the slow link in the chain. Benchmarks get stale… fast! Real world trumps test environs Choose the right tool for the right job
  • 43. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag HTTP/2 Implements RFC 7540 Supports both h2 (HTTP/2 over TLS) and h2c (HTTP/2 over TCP[cleartext]) Enterprise-ready regarding stability, performance, etc. Also supported in mod_proxy Perfect compliance
  • 44. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Advanced Security Support for certificate provisioning via ACME, including ACMEv2 : Let’s Encrypt support (mod_md) TLS 1.3 OpenSSL 1.1.1
  • 45. APACHECON North America This work is licensed under a Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag Thanks Twitter: @jimjag Emails:
 jim@jaguNET.com
 jim@apache.org
 jimjag@gmail.com http://www.slideshare.net/jimjag/ Apache Anniversary Beer Recipe (BeerSmith3 format): http://home.apache.org/~jim/download/ApacheAnniversaryRoggenbier.bsmx