SlideShare a Scribd company logo
1 of 46
Apache httpd v2.4:
Watch Out Cloud
      -or-
Hello Cloud: Buy you a drink?

          Jim Jagielski
About me
 Jim Jagielski
 - Hacker and developer
   - Co-founder of the ASF
   - Member, Director and President
   - Director: Outercurve and OSI
   - Council member: MARSEC-XL


 - Consulting Engineer with Red Hat


 - @jimjag




                             This work is licensed under a Creative Commons Attribution 3.0 Unported License.
What we will cover
 Overview of Apache httpd 2.4
 - General improvements
 - Reverse proxy improvements
 How the Cloud is a game-changer for web
 Performance Related Enhancements




                           This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Apache httpd 2.4
 Currently at version 2.4.2 (2.4.1 went GA Feb 21, 2012)
 2.4.3 RSN
 Significant Improvements
 - high-performance
 - cloud suitability




                             This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Apache httpd 2.4 - design drivers
 Support for async I/O w/o dropping support for older systems
 Larger selection of usable MPMs: added Event, Simple, etc...
 Leverage higher-performant versions of APR
 Increase performance
 Reduce memory utilization
 The Cloud




                              This work is licensed under a Creative Commons Attribution 3.0 Unported License.
What’s New: Apache httpd 2.4
 Bandwidth control now standard
 - mod_ratelimit
 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])
 <If> supports per-request conditions
 slot-based shared memory capability




                               This work is licensed under a Creative Commons Attribution 3.0 Unported License.
What’s New: Apache httpd 2.4
 Controllable buffering of I/O
  - mod_buffer
 Support for Lua (still experimental as of 2.4.2)
 Loadable MPMs
 General purpose Response Body substitution
  - mod_sed
 Auto-convert Response -> RFC 2397 data URL
  - mod_data
 Config file variables
 Cache improvements
 Proxy improvements (‘natch)



                                 This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Why Proxy Matters
 Cloud puts big focus on horizontal scaling
 Apache httpd still the most frequently used front-end
 Proxy capabilities must be cloud friendly




                             This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Proxy Design Drivers
 Becoming a robust but generic proxy implementation
 Support various protocols
 - HTTP, HTTPS, CONNECT, FTP
 - AJP, FastCGI, SCGI, WSGI (soon)
 - Load balancing
 Clustering, failover
 Performance




                              This work is licensed under a Creative Commons Attribution 3.0 Unported License.
What’s New: Apache httpd 2.4 proxy
 Reverse Proxy Improvements
 - Supports FastCGI, SCGI in balancer
 - Additional load balancing mechanisms
 - Runtime changing of clusters w/o restarts
 - Support for dynamic configuration
 - mod_proxy_express
 - mod_proxy_html
 - mod_fcgid




                           This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Load Balancer
 mod_proxy_balancer.so
 mod_proxy can do native load balancing
 - weight by actual requests
 - weight by traffic
 - weight by busyness
 - lbfactors




                           This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Load Balancer
 Backend connection pooling
 Available for named workers:
 - eg: ProxyPass /foo http://bar.example.com
 Reusable connection to origin
 - For threaded MPMs, can adjust size of pool (min, max, smax)
 - For prefork: singleton
 Shared data held in shared memory




                            This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Load Balancer
 Sticky session support
 - aka “session affinity”
 Cookie based
 - stickysession=PHPSESSID
 - stickysession=JSESSIONID
 Natively easy with Tomcat
 May require more setup for “simple” HTTP proxying




                              This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Load Balancer
 Cluster set with failover
 Group backend servers as numbered sets
 - balancer will try lower-valued sets first
 - If no workers are available, will try next set
 Hot standby




                              This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Putting it all together
    <Proxy balancer://foo>
      BalancerMember http://php1:8080/                loadfactor=1
      BalancerMember http://php2:8080/                loadfactor=4
      BalancerMember http://phpbkup:8080/             loadfactor=1 status=+h
      BalancerMember http://phpexp:8080/              lbset=1
      ProxySet lbmethod=bytraffic
    </Proxy>
    <Proxy balancer://javaapps>
      BalancerMember ajp://tc1:8089/              loadfactor=1
      BalancerMember ajp://tc2:8089/              loadfactor=4
      ProxySet lbmethod=byrequests
    </Proxy>
    ProxyPass /apps/ balancer://foo/
    ProxyPassReverse /apps/ balancer://foo/
    ProxyPass /serv/ balancer://javaapps/
    ProxyPass /images/ http://images:8080/



                              This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Embedded Admin
 Allows for real-time
 - Monitoring of stats for each worker
 - Adjustment of worker params
   - lbset
   - load factor
   - route
   - enabled / disabled
   - ...




                            This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Embedded Admin
 Allows for real-time
   - Addition of new workers/nodes
   - Change of LB methods
   - Can be persistent
   - More RESTful
   - Can be CLI-driven




                          This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Easy setup
 <Location /balancer-manager>
   SetHandler balancer-manager
   Order Deny,Allow
   Deny from all
   Allow from 192.168.2.22
 </Location>




                      This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Admin




        This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Admin




                                                     Click here




        This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Admin




        This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Admin




                                                           Click here




        This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Admin




        This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Admin




                                                  Changing the
                                                  LBmethod




                                                                Adding new worker




        This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Admin




                                                                                           Wow!




                                                             Wow!




        This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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


                        ProxyExpress map file
                        ##
                        ##express-map.txt:
                        ##

                        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



                              This work is licensed under a Creative Commons Attribution 3.0 Unported License.
What’s on the horizon?
 Improving AJP
 Adding additional protocols
 More dynamic configuration
 - Adding balancers!




                            This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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 even the primary one
 - What’s important now? Transaction Time!
   - Low latency
   - Fast req/resp turnover
 - Does density still matter? Of course!
 - Are there environs where concurrency is the bugaboo? You betcha! (but the cloud makes
   these more and more rare)




                               This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Apache httpd vs nginx
 Why nginx? Everyone asks about it...
 Benchmark: local and reverse proxy transaction times
 - Apache httpd 2.4.1-dev, nginx 1.2.0
 - Fedora 16, Dual Xeon 2.28GHz
 - 4GB memory
 - localhost loopback and external (no firewall)
 - Double checked results: OSX, Ubuntu 10.04




                            This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Setup




        This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Setup



        Setup 1:                                         loopback




           This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Setup



        Setup 1:                                         loopback




           Setup 2:




           This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Setup



        Setup 1:                                         loopback




           Setup 2:                                                             Setup 3:


           Setup 3:




           This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Considerations
 Multiple benchmarking systems:
 - flood (50/250/5/2, 50/100/5/2, 50/5/5/2)
 - httperf (num-conns=100->10000, numcalls=3)
 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)




                                 This work is licensed under a Creative Commons Attribution 3.0 Unported License.
nginx vs Event (typical)

             nginx                                                                                       Apache - Event MPM
2,000                                                         2000




1,500                                                         1500




1,000                                                         1000




 500                                                           500




   0                                                              0


                     Open                      Write                       Read                          Close




                      This work is licensed under a Creative Commons Attribution 3.0 Unported License.
nginx vs Worker (typical)

             nginx                                                                                   Apache - Worker MPM
2,000                                                         2000




1,500                                                         1500




1,000                                                         1000




 500                                                            500




   0                                                               0


                     Open                      Write                       Read                          Close




                      This work is licensed under a Creative Commons Attribution 3.0 Unported License.
nginx vs Prefork (typical)

             nginx                                                                                   Apache - Prefork MPM
2,000                                                         2000




1,500                                                         1500




1,000                                                         1000




 500                                                            500




   0                                                               0


                     Open                      Write                       Read                          Close




                      This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Focus on open()
                                                 Comparison - opens
  2000




  1500




  1000




   500




     0




                  Prefork                   Worker                        Event                      nginx
                      This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Focus on write()
                                                  Comparison - writes
  2000




  1500




  1000




   500




     0




                   Prefork                   Worker                        Event                      nginx
                       This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Focus on read()
                                                  Comparison - reads
  2000




  1500




  1000




   500




     0




                  Prefork                   Worker                        Event                      nginx
                      This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Total req/resp time
                                    Comparison - total transaction (close)
  2000




  1500




  1000




   500




     0




                 Prefork                    Worker                        Event                      nginx
                      This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Resp to Req. Bursts - httpref
                                                                              100 ---> 10000
  7.00




  5.25




  3.50




  1.75




    0
         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
                                              This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Independent benchmark




#!/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




 Source: Ryosuke Matsumoto : http://blog.matsumoto-r.jp/?p=1812

                                                                 This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Benchmark Conclusions
 Events, polling and fork/spawn creates overhead: good for “more bang for buck” system,
  bad for performance for that request
 For concurrency, Event & Worker on par with nginx*
 For transaction speed, prefork shines
 Let’s reboot “Simple” mpm (currently being done)
 *Main Caveats:
 - Apache is never resource starved
 - If memory is a scarce resource, nginx still better (for now ;) )
 - More work can (and should) be done




                              This work is licensed under a Creative Commons Attribution 3.0 Unported License.
In conclusion...
 Performance of Apache httpd 2.4 still in the big leagues (and on par with the “big boys” and
  the fanboi webserver du jure)
 For cloud environs, the performance and dynamic control of Apache httpd 2.4 in reverse
  proxies is just what the Dr. ordered (and flexibility remains a big strength)
 Architecture of Apache httpd 2.4 allows a lot of room for growth and additional functionality
  (both for the cloud and not)
 There’s still a category of “edge cases” that require nginx, lighttpd, G-WAN, Apache Traffic
  Server, etc... If that’s you, don’t try to use Apache httpd (but if you do, provide patches!)
 lies, damned lies and benchmarks (sorry, statistics).




                             This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Thanks!

 Contact Info:
 -                                               Jim Jagielski
 -                jim@jaguNET.com                                      jimjag@redhat.com
 -                            @jimjag                        www.jimjag.com
 -                          people.apache.org/~jim/presos/




                   This work is licensed under a Creative Commons Attribution 3.0 Unported License.

More Related Content

What's hot

Integrated Cache on Netscaler
Integrated Cache on NetscalerIntegrated Cache on Netscaler
Integrated Cache on NetscalerMark Hillick
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011Mike Willbanks
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2Fastly
 
Scaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsScaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsGavin Roy
 
I got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneI got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneAdrian Cole
 
2015 ZendCon - Do you queue
2015 ZendCon - Do you queue2015 ZendCon - Do you queue
2015 ZendCon - Do you queueMike Willbanks
 
Load Balancing MySQL with HAProxy - Slides
Load Balancing MySQL with HAProxy - SlidesLoad Balancing MySQL with HAProxy - Slides
Load Balancing MySQL with HAProxy - SlidesSeveralnines
 
Hands on Docker - Launch your own LEMP or LAMP stack
Hands on Docker -  Launch your own LEMP or LAMP stackHands on Docker -  Launch your own LEMP or LAMP stack
Hands on Docker - Launch your own LEMP or LAMP stackDana Luther
 
Recent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyKazuho Oku
 
HTTP/2: What no one is telling you
HTTP/2: What no one is telling youHTTP/2: What no one is telling you
HTTP/2: What no one is telling youFastly
 
Australian OpenStack User Group August 2012: Chef for OpenStack
Australian OpenStack User Group August 2012: Chef for OpenStackAustralian OpenStack User Group August 2012: Chef for OpenStack
Australian OpenStack User Group August 2012: Chef for OpenStackMatt Ray
 
Service workers - Velocity 2016 Training
Service workers - Velocity 2016 TrainingService workers - Velocity 2016 Training
Service workers - Velocity 2016 TrainingPatrick Meenan
 
Defeating The Network Security Infrastructure V1.0
Defeating The Network Security Infrastructure  V1.0Defeating The Network Security Infrastructure  V1.0
Defeating The Network Security Infrastructure V1.0Philippe Bogaerts
 
HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战Jerry Qu
 
How happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPHow happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPIchito Nagata
 
HAProxy tech talk
HAProxy tech talkHAProxy tech talk
HAProxy tech talkicebourg
 
Roy foubister (hosting high traffic sites on a tight budget)
Roy foubister (hosting high traffic sites on a tight budget)Roy foubister (hosting high traffic sites on a tight budget)
Roy foubister (hosting high traffic sites on a tight budget)WordCamp Cape Town
 
HTTP/2 for Developers
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for DevelopersSvetlin Nakov
 

What's hot (20)

Integrated Cache on Netscaler
Integrated Cache on NetscalerIntegrated Cache on Netscaler
Integrated Cache on Netscaler
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2
 
Scaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsScaling PostgreSQL with Skytools
Scaling PostgreSQL with Skytools
 
Oscon 2010 - ATS
Oscon 2010 - ATSOscon 2010 - ATS
Oscon 2010 - ATS
 
I got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneI got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't one
 
2015 ZendCon - Do you queue
2015 ZendCon - Do you queue2015 ZendCon - Do you queue
2015 ZendCon - Do you queue
 
Load Balancing MySQL with HAProxy - Slides
Load Balancing MySQL with HAProxy - SlidesLoad Balancing MySQL with HAProxy - Slides
Load Balancing MySQL with HAProxy - Slides
 
Hands on Docker - Launch your own LEMP or LAMP stack
Hands on Docker -  Launch your own LEMP or LAMP stackHands on Docker -  Launch your own LEMP or LAMP stack
Hands on Docker - Launch your own LEMP or LAMP stack
 
Recent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using ruby
 
HTTP/2: What no one is telling you
HTTP/2: What no one is telling youHTTP/2: What no one is telling you
HTTP/2: What no one is telling you
 
Australian OpenStack User Group August 2012: Chef for OpenStack
Australian OpenStack User Group August 2012: Chef for OpenStackAustralian OpenStack User Group August 2012: Chef for OpenStack
Australian OpenStack User Group August 2012: Chef for OpenStack
 
Velocity 2010 - ATS
Velocity 2010 - ATSVelocity 2010 - ATS
Velocity 2010 - ATS
 
Service workers - Velocity 2016 Training
Service workers - Velocity 2016 TrainingService workers - Velocity 2016 Training
Service workers - Velocity 2016 Training
 
Defeating The Network Security Infrastructure V1.0
Defeating The Network Security Infrastructure  V1.0Defeating The Network Security Infrastructure  V1.0
Defeating The Network Security Infrastructure V1.0
 
HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战
 
How happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPHow happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTP
 
HAProxy tech talk
HAProxy tech talkHAProxy tech talk
HAProxy tech talk
 
Roy foubister (hosting high traffic sites on a tight budget)
Roy foubister (hosting high traffic sites on a tight budget)Roy foubister (hosting high traffic sites on a tight budget)
Roy foubister (hosting high traffic sites on a tight budget)
 
HTTP/2 for Developers
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for Developers
 

Viewers also liked

Open Source Management
Open Source ManagementOpen Source Management
Open Source ManagementJim 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
 
Acus08 Advanced Load Balancing Apache2.2
Acus08 Advanced Load Balancing Apache2.2Acus08 Advanced Load Balancing Apache2.2
Acus08 Advanced Load Balancing Apache2.2Jim Jagielski
 
Three Shall Be The Number
Three Shall Be The NumberThree Shall Be The Number
Three Shall Be The NumberJim Jagielski
 
Three Is a Magic Number
Three Is a Magic NumberThree Is a Magic Number
Three Is a Magic NumberJim Jagielski
 
Open Source - Not just for IT anymore
Open Source - Not just for IT anymoreOpen Source - Not just for IT anymore
Open Source - Not just for IT anymoreJim 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
 
Apache State of the Feather 2010
Apache State of the Feather 2010Apache State of the Feather 2010
Apache State of the Feather 2010Jim Jagielski
 
Understanding Open Source Licenses
Understanding Open Source LicensesUnderstanding Open Source Licenses
Understanding Open Source LicensesJim Jagielski
 
Apache State Of the Feather 2011
Apache State Of the Feather 2011Apache State Of the Feather 2011
Apache State Of the Feather 2011Jim Jagielski
 
Acus08 State Of The Feather
Acus08 State Of The FeatherAcus08 State Of The Feather
Acus08 State Of The FeatherJim Jagielski
 
Creating community - The Apache Way
Creating community - The Apache WayCreating community - The Apache Way
Creating community - The Apache WayJim Jagielski
 
Governance and Communities
Governance and CommunitiesGovernance and Communities
Governance and CommunitiesJim Jagielski
 
Running Successful Open Source Projects
Running Successful Open Source ProjectsRunning Successful Open Source Projects
Running Successful Open Source ProjectsJim Jagielski
 
What is "Open Source"
What is "Open Source"What is "Open Source"
What is "Open Source"Jim Jagielski
 
Acus08 ASF Sponsorship
Acus08 ASF SponsorshipAcus08 ASF Sponsorship
Acus08 ASF SponsorshipJim Jagielski
 
Drupal Camp Balto 2015
Drupal Camp Balto 2015Drupal Camp Balto 2015
Drupal Camp Balto 2015Jim Jagielski
 
Code, Community, and Open Source
Code, Community, and Open SourceCode, Community, and Open Source
Code, Community, and Open SourceJim 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
 

Viewers also liked (20)

Open Source Management
Open Source ManagementOpen Source Management
Open Source Management
 
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
 
Acus08 Advanced Load Balancing Apache2.2
Acus08 Advanced Load Balancing Apache2.2Acus08 Advanced Load Balancing Apache2.2
Acus08 Advanced Load Balancing Apache2.2
 
Three Shall Be The Number
Three Shall Be The NumberThree Shall Be The Number
Three Shall Be The Number
 
Three Is a Magic Number
Three Is a Magic NumberThree Is a Magic Number
Three Is a Magic Number
 
Open Source - Not just for IT anymore
Open Source - Not just for IT anymoreOpen Source - Not just for IT anymore
Open Source - Not just for IT anymore
 
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
 
Apache State of the Feather 2010
Apache State of the Feather 2010Apache State of the Feather 2010
Apache State of the Feather 2010
 
Understanding Open Source Licenses
Understanding Open Source LicensesUnderstanding Open Source Licenses
Understanding Open Source Licenses
 
Apache State Of the Feather 2011
Apache State Of the Feather 2011Apache State Of the Feather 2011
Apache State Of the Feather 2011
 
Acus08 State Of The Feather
Acus08 State Of The FeatherAcus08 State Of The Feather
Acus08 State Of The Feather
 
Creating community - The Apache Way
Creating community - The Apache WayCreating community - The Apache Way
Creating community - The Apache Way
 
Governance and Communities
Governance and CommunitiesGovernance and Communities
Governance and Communities
 
Running Successful Open Source Projects
Running Successful Open Source ProjectsRunning Successful Open Source Projects
Running Successful Open Source Projects
 
What is "Open Source"
What is "Open Source"What is "Open Source"
What is "Open Source"
 
Acus08 ASF Sponsorship
Acus08 ASF SponsorshipAcus08 ASF Sponsorship
Acus08 ASF Sponsorship
 
Drupal Camp Balto 2015
Drupal Camp Balto 2015Drupal Camp Balto 2015
Drupal Camp Balto 2015
 
Code, Community, and Open Source
Code, Community, and Open SourceCode, Community, and Open Source
Code, Community, and Open Source
 
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
 

Similar to Apache httpd v2.4: Cloud Performance and Reverse Proxy Enhancements

Apache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse ProxyApache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse ProxyJim Jagielski
 
Apache httpd 2.4 overview
Apache httpd 2.4 overviewApache httpd 2.4 overview
Apache httpd 2.4 overviewJim Jagielski
 
What's New and Newer in Apache httpd-24
What's New and Newer in Apache httpd-24What's New and Newer in Apache httpd-24
What's New and Newer in Apache httpd-24Jim Jagielski
 
Apache HTTPD 2.4 - GWO2016
Apache HTTPD 2.4 - GWO2016Apache HTTPD 2.4 - GWO2016
Apache HTTPD 2.4 - GWO2016Jim Jagielski
 
Scale Apache with Nginx
Scale Apache with NginxScale Apache with Nginx
Scale Apache with NginxBud Siddhisena
 
Web Server Load Balancer
Web Server Load BalancerWeb Server Load Balancer
Web Server Load BalancerMobME Technical
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindSam Keen
 
Apache httpd 2.4 Reverse Proxy: The Hidden Gem
Apache httpd 2.4 Reverse Proxy: The Hidden GemApache httpd 2.4 Reverse Proxy: The Hidden Gem
Apache httpd 2.4 Reverse Proxy: The Hidden GemJim 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
 
CUBRID Developer's Course
CUBRID Developer's CourseCUBRID Developer's Course
CUBRID Developer's CourseCUBRID
 
Performance Tuning - MuraCon 2012
Performance Tuning - MuraCon 2012Performance Tuning - MuraCon 2012
Performance Tuning - MuraCon 2012eballisty
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practiceDocker, Inc.
 
Apache Traffic Server
Apache Traffic ServerApache Traffic Server
Apache Traffic Serversupertom
 
WE18_Performance_Up.ppt
WE18_Performance_Up.pptWE18_Performance_Up.ppt
WE18_Performance_Up.pptwebhostingguy
 
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web serverNginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web serverwruben
 
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...OpenNebula Project
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyMediafly
 

Similar to Apache httpd v2.4: Cloud Performance and Reverse Proxy Enhancements (20)

Apache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse ProxyApache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse Proxy
 
Reverse proxy magic
Reverse proxy magicReverse proxy magic
Reverse proxy magic
 
Apache httpd 2.4 overview
Apache httpd 2.4 overviewApache httpd 2.4 overview
Apache httpd 2.4 overview
 
What's New and Newer in Apache httpd-24
What's New and Newer in Apache httpd-24What's New and Newer in Apache httpd-24
What's New and Newer in Apache httpd-24
 
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
 
Scale Apache with Nginx
Scale Apache with NginxScale Apache with Nginx
Scale Apache with Nginx
 
slides (PPT)
slides (PPT)slides (PPT)
slides (PPT)
 
Web Server Load Balancer
Web Server Load BalancerWeb Server Load Balancer
Web Server Load Balancer
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
 
Apache httpd 2.4 Reverse Proxy: The Hidden Gem
Apache httpd 2.4 Reverse Proxy: The Hidden GemApache httpd 2.4 Reverse Proxy: The Hidden Gem
Apache httpd 2.4 Reverse Proxy: The Hidden Gem
 
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?
 
CUBRID Developer's Course
CUBRID Developer's CourseCUBRID Developer's Course
CUBRID Developer's Course
 
Performance Tuning - MuraCon 2012
Performance Tuning - MuraCon 2012Performance Tuning - MuraCon 2012
Performance Tuning - MuraCon 2012
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practice
 
Apache Traffic Server
Apache Traffic ServerApache Traffic Server
Apache Traffic Server
 
WE18_Performance_Up.ppt
WE18_Performance_Up.pptWE18_Performance_Up.ppt
WE18_Performance_Up.ppt
 
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web serverNginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web server
 
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
 

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
 
The History of The Apache Software Foundation
The History of The Apache Software FoundationThe History of The Apache Software Foundation
The History of The Apache Software FoundationJim Jagielski
 
Not your daddy's web server
Not your daddy's web serverNot your daddy's web server
Not your daddy's web serverJim Jagielski
 
Apache httpd Reverse Proxy and Tomcat
Apache httpd Reverse Proxy and TomcatApache httpd Reverse Proxy and Tomcat
Apache httpd Reverse Proxy and TomcatJim 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: The Apache Software Foundation 101
All Things Open 2017: The Apache Software Foundation 101All Things Open 2017: The Apache Software Foundation 101
All Things Open 2017: The Apache Software Foundation 101Jim 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: 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
 
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
 
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
 

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 History of The Apache Software Foundation
The History of The Apache Software FoundationThe History of The Apache Software Foundation
The History of The Apache Software Foundation
 
The Apache Way
The Apache WayThe Apache Way
The Apache Way
 
Not your daddy's web server
Not your daddy's web serverNot your daddy's web server
Not your daddy's web server
 
Apache httpd Reverse Proxy and Tomcat
Apache httpd Reverse Proxy and TomcatApache httpd Reverse Proxy and Tomcat
Apache httpd Reverse Proxy and Tomcat
 
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: The Apache Software Foundation 101
All Things Open 2017: The Apache Software Foundation 101All Things Open 2017: The Apache Software Foundation 101
All Things Open 2017: The Apache Software Foundation 101
 
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: 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
 
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
 
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
 

Recently uploaded

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Recently uploaded (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

Apache httpd v2.4: Cloud Performance and Reverse Proxy Enhancements

  • 1. Apache httpd v2.4: Watch Out Cloud -or- Hello Cloud: Buy you a drink? Jim Jagielski
  • 2. About me  Jim Jagielski - Hacker and developer - Co-founder of the ASF - Member, Director and President - Director: Outercurve and OSI - Council member: MARSEC-XL - Consulting Engineer with Red Hat - @jimjag This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 3. What we will cover  Overview of Apache httpd 2.4 - General improvements - Reverse proxy improvements  How the Cloud is a game-changer for web  Performance Related Enhancements This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 4. Apache httpd 2.4  Currently at version 2.4.2 (2.4.1 went GA Feb 21, 2012)  2.4.3 RSN  Significant Improvements - high-performance - cloud suitability This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 5. Apache httpd 2.4 - design drivers  Support for async I/O w/o dropping support for older systems  Larger selection of usable MPMs: added Event, Simple, etc...  Leverage higher-performant versions of APR  Increase performance  Reduce memory utilization  The Cloud This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 6. What’s New: Apache httpd 2.4  Bandwidth control now standard - mod_ratelimit  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])  <If> supports per-request conditions  slot-based shared memory capability This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 7. What’s New: Apache httpd 2.4  Controllable buffering of I/O - mod_buffer  Support for Lua (still experimental as of 2.4.2)  Loadable MPMs  General purpose Response Body substitution - mod_sed  Auto-convert Response -> RFC 2397 data URL - mod_data  Config file variables  Cache improvements  Proxy improvements (‘natch) This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 8. Why Proxy Matters  Cloud puts big focus on horizontal scaling  Apache httpd still the most frequently used front-end  Proxy capabilities must be cloud friendly This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 9. Proxy Design Drivers  Becoming a robust but generic proxy implementation  Support various protocols - HTTP, HTTPS, CONNECT, FTP - AJP, FastCGI, SCGI, WSGI (soon) - Load balancing  Clustering, failover  Performance This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 10. What’s New: Apache httpd 2.4 proxy  Reverse Proxy Improvements - Supports FastCGI, SCGI in balancer - Additional load balancing mechanisms - Runtime changing of clusters w/o restarts - Support for dynamic configuration - mod_proxy_express - mod_proxy_html - mod_fcgid This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 11. Load Balancer  mod_proxy_balancer.so  mod_proxy can do native load balancing - weight by actual requests - weight by traffic - weight by busyness - lbfactors This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 12. Load Balancer  Backend connection pooling  Available for named workers: - eg: ProxyPass /foo http://bar.example.com  Reusable connection to origin - For threaded MPMs, can adjust size of pool (min, max, smax) - For prefork: singleton  Shared data held in shared memory This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 13. Load Balancer  Sticky session support - aka “session affinity”  Cookie based - stickysession=PHPSESSID - stickysession=JSESSIONID  Natively easy with Tomcat  May require more setup for “simple” HTTP proxying This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 14. Load Balancer  Cluster set with failover  Group backend servers as numbered sets - balancer will try lower-valued sets first - If no workers are available, will try next set  Hot standby This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 15. Putting it all together <Proxy balancer://foo> BalancerMember http://php1:8080/ loadfactor=1 BalancerMember http://php2:8080/ loadfactor=4 BalancerMember http://phpbkup:8080/ loadfactor=1 status=+h BalancerMember http://phpexp:8080/ lbset=1 ProxySet lbmethod=bytraffic </Proxy> <Proxy balancer://javaapps> BalancerMember ajp://tc1:8089/ loadfactor=1 BalancerMember ajp://tc2:8089/ loadfactor=4 ProxySet lbmethod=byrequests </Proxy> ProxyPass /apps/ balancer://foo/ ProxyPassReverse /apps/ balancer://foo/ ProxyPass /serv/ balancer://javaapps/ ProxyPass /images/ http://images:8080/ This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 16. Embedded Admin  Allows for real-time - Monitoring of stats for each worker - Adjustment of worker params - lbset - load factor - route - enabled / disabled - ... This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 17. Embedded Admin  Allows for real-time - Addition of new workers/nodes - Change of LB methods - Can be persistent - More RESTful - Can be CLI-driven This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 18. Easy setup <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Deny from all Allow from 192.168.2.22 </Location> This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 19. Admin This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 20. Admin Click here This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 21. Admin This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 22. Admin Click here This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 23. Admin This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 24. Admin Changing the LBmethod Adding new worker This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 25. Admin Wow! Wow! This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 26. 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 ProxyExpress map file ## ##express-map.txt: ## 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 This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 27. What’s on the horizon?  Improving AJP  Adding additional protocols  More dynamic configuration - Adding balancers! This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 28. 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 even the primary one - What’s important now? Transaction Time! - Low latency - Fast req/resp turnover - Does density still matter? Of course! - Are there environs where concurrency is the bugaboo? You betcha! (but the cloud makes these more and more rare) This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 29. Apache httpd vs nginx  Why nginx? Everyone asks about it...  Benchmark: local and reverse proxy transaction times - Apache httpd 2.4.1-dev, nginx 1.2.0 - Fedora 16, Dual Xeon 2.28GHz - 4GB memory - localhost loopback and external (no firewall) - Double checked results: OSX, Ubuntu 10.04 This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 30. Setup This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 31. Setup Setup 1: loopback This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 32. Setup Setup 1: loopback Setup 2: This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 33. Setup Setup 1: loopback Setup 2: Setup 3: Setup 3: This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 34. Considerations  Multiple benchmarking systems: - flood (50/250/5/2, 50/100/5/2, 50/5/5/2) - httperf (num-conns=100->10000, numcalls=3)  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) This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 35. nginx vs Event (typical) nginx Apache - Event MPM 2,000 2000 1,500 1500 1,000 1000 500 500 0 0 Open Write Read Close This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 36. nginx vs Worker (typical) nginx Apache - Worker MPM 2,000 2000 1,500 1500 1,000 1000 500 500 0 0 Open Write Read Close This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 37. nginx vs Prefork (typical) nginx Apache - Prefork MPM 2,000 2000 1,500 1500 1,000 1000 500 500 0 0 Open Write Read Close This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 38. Focus on open() Comparison - opens 2000 1500 1000 500 0 Prefork Worker Event nginx This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 39. Focus on write() Comparison - writes 2000 1500 1000 500 0 Prefork Worker Event nginx This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 40. Focus on read() Comparison - reads 2000 1500 1000 500 0 Prefork Worker Event nginx This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 41. Total req/resp time Comparison - total transaction (close) 2000 1500 1000 500 0 Prefork Worker Event nginx This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 42. Resp to Req. Bursts - httpref 100 ---> 10000 7.00 5.25 3.50 1.75 0 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 This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 43. Independent benchmark #!/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 Source: Ryosuke Matsumoto : http://blog.matsumoto-r.jp/?p=1812 This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 44. Benchmark Conclusions  Events, polling and fork/spawn creates overhead: good for “more bang for buck” system, bad for performance for that request  For concurrency, Event & Worker on par with nginx*  For transaction speed, prefork shines  Let’s reboot “Simple” mpm (currently being done)  *Main Caveats: - Apache is never resource starved - If memory is a scarce resource, nginx still better (for now ;) ) - More work can (and should) be done This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 45. In conclusion...  Performance of Apache httpd 2.4 still in the big leagues (and on par with the “big boys” and the fanboi webserver du jure)  For cloud environs, the performance and dynamic control of Apache httpd 2.4 in reverse proxies is just what the Dr. ordered (and flexibility remains a big strength)  Architecture of Apache httpd 2.4 allows a lot of room for growth and additional functionality (both for the cloud and not)  There’s still a category of “edge cases” that require nginx, lighttpd, G-WAN, Apache Traffic Server, etc... If that’s you, don’t try to use Apache httpd (but if you do, provide patches!)  lies, damned lies and benchmarks (sorry, statistics). This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  • 46. Thanks!  Contact Info: - Jim Jagielski - jim@jaguNET.com jimjag@redhat.com - @jimjag www.jimjag.com - people.apache.org/~jim/presos/ This work is licensed under a Creative Commons Attribution 3.0 Unported License.

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n