Jim Jagielski discusses the Apache HTTPD v2.4 reverse proxy capabilities. Key points include:
1) Apache HTTPD v2.4 includes improvements that make it suitable for cloud environments and high performance as a reverse proxy, including support for asynchronous I/O and additional load balancing mechanisms.
2) As a reverse proxy, Apache HTTPD can provide security, load balancing, caching, and high availability for backend servers located behind the proxy.
3) Apache HTTPD v2.4's reverse proxy functionality includes support for additional protocols, load balancing algorithms, dynamic configuration, and HTTP/2.
ApacheConNA 2015: What's new in Apache httpd 2.4Jim Jagielski
The document discusses the new features of Apache HTTP Server version 2.4, including performance improvements through more efficient modules and data structures, enhanced configuration options, new modules for capabilities like Lua scripting and remote IP access, and improved proxy functionality for dynamic and cloud environments. Key areas covered are performance, configuration, new modules, and proxy features.
ApacheCon 2014 - What's New in Apache httpd 2.4Jim Jagielski
The document summarizes new features in Apache HTTPD version 2.4, including improved performance through the Event MPM, faster APR, and reduced memory usage. It describes new configuration options like finer timeout controls and the <If> directive. New modules like mod_lua and mod_proxy submodules are highlighted. The document also discusses how Apache has adapted to cloud computing through dynamic proxying, load balancing, and self-aware environments.
These are the slides from my "HTML5 Real-TIme and Connectivity" presentation at the San Francisco HTML5 User Group (http://sfhtml5.org). The presentation covers:
Web Origin
Cross Document Messaging (PostMessage)
CORS
XHR Level2
WebSocket
Server-Sent Events (EventSource)
SPDY
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Max Andersen
This session discusses the promise of interoperability in the Java EE 7 platform and what has been done—even now, at its time of release—to maintain this. The session shows how a Java EE 7 application can be easily built using NetBeans and JBoss development tools. This application can then be deployed on JBoss, GlassFish, and Oracle WebLogic, showing the promise of interoperability. The state of Java EE 7 compliance for different application servers is discussed and demonstrated.
Deploying configurable frontend web application containersJosé Moreira
Deploying containerized client-side web applications requires a different configuration strategy compared to system applications. The runtime of client-side web applications is the client-side web browser and, unlike other applications which can utilize environment values, configuration has to be hard-coded in the Javascript source code.
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpMatthew Davis
We take great care in our back end coding workflow, optimising, automating and abstracting as much as is possible. So why don't we do that with our front end code?
We'll take a look at some tools to help us take our front end workflow to the next level, and hopefully optimise our load times in the process!
We'll be looking at using Twig templates and optimising them for the different areas of your application, integrating Bower and Gulp for managing assets and processing our front-end code to avoid repetitive tasks - looking at how that impacts the typical Symfony workflow.
Jim Jagielski discusses the Apache HTTPD v2.4 reverse proxy capabilities. Key points include:
1) Apache HTTPD v2.4 includes improvements that make it suitable for cloud environments and high performance as a reverse proxy, including support for asynchronous I/O and additional load balancing mechanisms.
2) As a reverse proxy, Apache HTTPD can provide security, load balancing, caching, and high availability for backend servers located behind the proxy.
3) Apache HTTPD v2.4's reverse proxy functionality includes support for additional protocols, load balancing algorithms, dynamic configuration, and HTTP/2.
ApacheConNA 2015: What's new in Apache httpd 2.4Jim Jagielski
The document discusses the new features of Apache HTTP Server version 2.4, including performance improvements through more efficient modules and data structures, enhanced configuration options, new modules for capabilities like Lua scripting and remote IP access, and improved proxy functionality for dynamic and cloud environments. Key areas covered are performance, configuration, new modules, and proxy features.
ApacheCon 2014 - What's New in Apache httpd 2.4Jim Jagielski
The document summarizes new features in Apache HTTPD version 2.4, including improved performance through the Event MPM, faster APR, and reduced memory usage. It describes new configuration options like finer timeout controls and the <If> directive. New modules like mod_lua and mod_proxy submodules are highlighted. The document also discusses how Apache has adapted to cloud computing through dynamic proxying, load balancing, and self-aware environments.
These are the slides from my "HTML5 Real-TIme and Connectivity" presentation at the San Francisco HTML5 User Group (http://sfhtml5.org). The presentation covers:
Web Origin
Cross Document Messaging (PostMessage)
CORS
XHR Level2
WebSocket
Server-Sent Events (EventSource)
SPDY
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Max Andersen
This session discusses the promise of interoperability in the Java EE 7 platform and what has been done—even now, at its time of release—to maintain this. The session shows how a Java EE 7 application can be easily built using NetBeans and JBoss development tools. This application can then be deployed on JBoss, GlassFish, and Oracle WebLogic, showing the promise of interoperability. The state of Java EE 7 compliance for different application servers is discussed and demonstrated.
Deploying configurable frontend web application containersJosé Moreira
Deploying containerized client-side web applications requires a different configuration strategy compared to system applications. The runtime of client-side web applications is the client-side web browser and, unlike other applications which can utilize environment values, configuration has to be hard-coded in the Javascript source code.
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpMatthew Davis
We take great care in our back end coding workflow, optimising, automating and abstracting as much as is possible. So why don't we do that with our front end code?
We'll take a look at some tools to help us take our front end workflow to the next level, and hopefully optimise our load times in the process!
We'll be looking at using Twig templates and optimising them for the different areas of your application, integrating Bower and Gulp for managing assets and processing our front-end code to avoid repetitive tasks - looking at how that impacts the typical Symfony workflow.
How to Turn a Pile of Python Files Into an Open Source Project.
You have written some Python code, you think it would be useful to the world, and you would like to give back to the open source world. But where do you start? This talk will give you some guidance on how you can release your project
Apache and PHP: Why httpd.conf is your new BFF!Jeff Jones
Apache's configuration files can be used to configure how Apache operates, but they can also be used to configure PHP and how Apache httpd interacts with PHP. In this talk, Jeff explains the different ways Apache can be configured, explains many of the useful config options available for Apache modules, including our own mod_php, and showcases example of how they can be used with, and instead of, your PHP code.
Web Developers are excited to use HTML 5 features but sometimes they need to explain to their non-technical boss what it is and how it can benefit the company. This presentation provides just enough information to share the capabilities of this new technologies without overwhelming the audience with the technical details.
"What is HTML5?" covers things you might have seen on other websites and wanted to add on your own website but you didn't know it was a feature of HTML 5. After viewing this slideshow you will probably give your web developer the "go ahead" to upgrade your current HTML 4 website to HTML 5.
You will also understand why web developers don't like IE (Internet Explorer) and why they always want you to keep your browser updated to latest version. "I have seen the future. It's in my browser" is the slogan used by many who have joined the HTML 5 revolution.
Gentle introduction to Pyramid. Where it comes from, how simple it, how fast, how flexible and why the future will be pyramid shaped.
Made for pyconau 2011
The document discusses CodeIgniter, an open source PHP MVC framework, and provides information about CodeIgniter features such as controllers, models, views, helpers, libraries, and working with databases using CodeIgniter's active record functions. It also covers topics like installing CodeIgniter, creating controllers and models, and loading views, helpers, and libraries.
implement lighthouse-ci with your web development workflowWordPress
This presentation is about implementing the performance as first approach in web development and a bit of real case study. Then implement the Lighthouse-CI in the development workflow to keep the site performance high.
In the beginning, progressive enhancement was simple: HTML layered with CSS layered with JavaScript. That worked fine when there were two browsers, but in today's world of multiple devices and multiple browsers, it's time for a progressive enhancement reboot. At the core is the understanding that the web is not print - the same rules don't apply. As developers and consumers we've been fooled into thinking about print paradigms for too long. In this talk, you'll learn just how different the web is and how the evolution of progressive enhancement can lead to better user experiences as well as happier developers and users.
This deck is a conference-agnostic one, suitable to be shown anywhere without site-specific jokes!
This document discusses responsive image techniques for adaptive web design. It begins by explaining browser sniffing versus feature testing, and recommends using feature testing to determine browser width, screen resolution, and bandwidth instead of browser sniffing. It then covers techniques like using background-size to control image sizes, SVG for smaller file sizes, and font-based solutions. The document also discusses server-side techniques like .htaccess rewrite rules and client-side techniques like picture and HiSRC. It advocates for a mobile-first approach using CSS media queries and a single pixel GIF for responsive images.
Browser Wars Episode 1: The Phantom MenaceNicholas Zakas
This document summarizes the history and evolution of web browsers and internet technologies from the early 1990s to the late 1990s. It traces the development of key browsers like Netscape Navigator and Internet Explorer. It also outlines the introduction of important web standards like HTML, CSS, JavaScript and XML. Major events included the commercialization of the web in the mid-1990s, the browser wars between Netscape and Microsoft in the late 90s, and the consolidation of online services providers toward the end of the decade.
The document discusses various tools for working with APIs such as HTTPie, cURL, Charles, and Firebug. It then provides an overview of REST APIs and common REST methods like GET, POST, PUT, DELETE. Key REST concepts like idempotence and safe methods are explained. Examples are given showing requests and responses for each REST method. The document concludes by mentioning documentation tools from Mashery and Apigee and encourages exploring APIs in code.
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsRyan Weaver
Bower, Grunt, and RequireJS are just a few tools that have been re-shaping the frontend development world, replacing cluttered script tags and server-side build solutions with a sophisticated, but sometimes complex approach to dependency management and module loading. In this talk, we'll put on our trendy frontend developer hat and find out how these tools work and how they differ from what we might be used to. Most important, we'll see how using tools like this might look in Symfony2 and how our application can be a friendly place for a frontend guy/gal.
The document discusses using behavior driven development (BDD) to write better test scenarios. It provides an example of a scenario that tests whether a Confluence server is accessible. The author questions whether this scenario truly qualifies as BDD or is instead just a technical test. The discussion covers differences between BDD and technical testing, as well as considerations around using Cucumber for technical tests versus unit tests. The author emphasizes being pragmatic and ensuring scenarios will be read and understood by their intended audience.
This document provides an overview of the Grunt task runner. It discusses Grunt basics like minifying, concatenating, and linting files. It also covers Grunt configuration including initConfig, tasks, files, and templates. Custom tasks, asynchronous tasks, and importing external data are described. The document recommends Grunt for its large community, strong adoption, valuable skills, and ability to easily automate common development tasks.
Play Framework workshop: full stack java web appAndrew Skiba
The slides of Play Framework workshop from the meetup on Google Campus Tel Aviv on January 2014. Includes 5 hands-on assignments mixed with 5 additional steps to create a full application for remotely controlling YouTube on another computer. Demonstrates usage of AngularJS, Twitter Bootstrap, WebSockets. Discusses forms-based and single page web applications.
Chrome Devtools Protocol via Selenium/Appium (Japanese)Kazuaki Matsuo
This document discusses using the Chrome DevTools Protocol (CDP) via Selenium and Appium to control and inspect Chrome and Android Chrome browsers. It provides examples of executing CDP commands through Selenium for Chrome on desktop and through Appium for Android Chrome. The CDP allows programs to remotely control and inspect browser activity and state.
Introduction to Grunt.js on Taiwan JavaScript ConferenceBo-Yi Wu
This document provides an overview of popular front-end development tools, including Node Version Manager (nvm) for managing Node.js versions, Bower for package management, CoffeeScript for compiling JavaScript, Compass for compiling CSS, RequireJS for module management, and Livereload for live reloading during development. It recommends using Grunt as a task runner to integrate these tools, describing how to configure Grunt plugins for Bower, CoffeeScript, and Compass.
The document discusses Google App Engine (GAE) and its support for PHP. It provides an overview of GAE and PHP, including supported PHP extensions, tools, and how to connect to Google Cloud SQL and Cloud Storage from PHP applications. It also discusses other GAE services like Memcache, task queues, logging, and cron jobs. The document concludes with examples of applications that can be developed with GAE PHP and limitations to be aware of.
Architecture of a Next-Generation Parallel File System Great Wide Open
The document discusses the architecture of the next-generation parallel file system OrangeFS. OrangeFS distributes file data and metadata across multiple file servers and storage devices. It supports simultaneous access by multiple clients. Recent additions to OrangeFS include a scalable metadata operation protocol, support for SSD metadata storage, a Windows client, direct client access interface, client caching, WebDAV integration, and an S3 interface.
How to Turn a Pile of Python Files Into an Open Source Project.
You have written some Python code, you think it would be useful to the world, and you would like to give back to the open source world. But where do you start? This talk will give you some guidance on how you can release your project
Apache and PHP: Why httpd.conf is your new BFF!Jeff Jones
Apache's configuration files can be used to configure how Apache operates, but they can also be used to configure PHP and how Apache httpd interacts with PHP. In this talk, Jeff explains the different ways Apache can be configured, explains many of the useful config options available for Apache modules, including our own mod_php, and showcases example of how they can be used with, and instead of, your PHP code.
Web Developers are excited to use HTML 5 features but sometimes they need to explain to their non-technical boss what it is and how it can benefit the company. This presentation provides just enough information to share the capabilities of this new technologies without overwhelming the audience with the technical details.
"What is HTML5?" covers things you might have seen on other websites and wanted to add on your own website but you didn't know it was a feature of HTML 5. After viewing this slideshow you will probably give your web developer the "go ahead" to upgrade your current HTML 4 website to HTML 5.
You will also understand why web developers don't like IE (Internet Explorer) and why they always want you to keep your browser updated to latest version. "I have seen the future. It's in my browser" is the slogan used by many who have joined the HTML 5 revolution.
Gentle introduction to Pyramid. Where it comes from, how simple it, how fast, how flexible and why the future will be pyramid shaped.
Made for pyconau 2011
The document discusses CodeIgniter, an open source PHP MVC framework, and provides information about CodeIgniter features such as controllers, models, views, helpers, libraries, and working with databases using CodeIgniter's active record functions. It also covers topics like installing CodeIgniter, creating controllers and models, and loading views, helpers, and libraries.
implement lighthouse-ci with your web development workflowWordPress
This presentation is about implementing the performance as first approach in web development and a bit of real case study. Then implement the Lighthouse-CI in the development workflow to keep the site performance high.
In the beginning, progressive enhancement was simple: HTML layered with CSS layered with JavaScript. That worked fine when there were two browsers, but in today's world of multiple devices and multiple browsers, it's time for a progressive enhancement reboot. At the core is the understanding that the web is not print - the same rules don't apply. As developers and consumers we've been fooled into thinking about print paradigms for too long. In this talk, you'll learn just how different the web is and how the evolution of progressive enhancement can lead to better user experiences as well as happier developers and users.
This deck is a conference-agnostic one, suitable to be shown anywhere without site-specific jokes!
This document discusses responsive image techniques for adaptive web design. It begins by explaining browser sniffing versus feature testing, and recommends using feature testing to determine browser width, screen resolution, and bandwidth instead of browser sniffing. It then covers techniques like using background-size to control image sizes, SVG for smaller file sizes, and font-based solutions. The document also discusses server-side techniques like .htaccess rewrite rules and client-side techniques like picture and HiSRC. It advocates for a mobile-first approach using CSS media queries and a single pixel GIF for responsive images.
Browser Wars Episode 1: The Phantom MenaceNicholas Zakas
This document summarizes the history and evolution of web browsers and internet technologies from the early 1990s to the late 1990s. It traces the development of key browsers like Netscape Navigator and Internet Explorer. It also outlines the introduction of important web standards like HTML, CSS, JavaScript and XML. Major events included the commercialization of the web in the mid-1990s, the browser wars between Netscape and Microsoft in the late 90s, and the consolidation of online services providers toward the end of the decade.
The document discusses various tools for working with APIs such as HTTPie, cURL, Charles, and Firebug. It then provides an overview of REST APIs and common REST methods like GET, POST, PUT, DELETE. Key REST concepts like idempotence and safe methods are explained. Examples are given showing requests and responses for each REST method. The document concludes by mentioning documentation tools from Mashery and Apigee and encourages exploring APIs in code.
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsRyan Weaver
Bower, Grunt, and RequireJS are just a few tools that have been re-shaping the frontend development world, replacing cluttered script tags and server-side build solutions with a sophisticated, but sometimes complex approach to dependency management and module loading. In this talk, we'll put on our trendy frontend developer hat and find out how these tools work and how they differ from what we might be used to. Most important, we'll see how using tools like this might look in Symfony2 and how our application can be a friendly place for a frontend guy/gal.
The document discusses using behavior driven development (BDD) to write better test scenarios. It provides an example of a scenario that tests whether a Confluence server is accessible. The author questions whether this scenario truly qualifies as BDD or is instead just a technical test. The discussion covers differences between BDD and technical testing, as well as considerations around using Cucumber for technical tests versus unit tests. The author emphasizes being pragmatic and ensuring scenarios will be read and understood by their intended audience.
This document provides an overview of the Grunt task runner. It discusses Grunt basics like minifying, concatenating, and linting files. It also covers Grunt configuration including initConfig, tasks, files, and templates. Custom tasks, asynchronous tasks, and importing external data are described. The document recommends Grunt for its large community, strong adoption, valuable skills, and ability to easily automate common development tasks.
Play Framework workshop: full stack java web appAndrew Skiba
The slides of Play Framework workshop from the meetup on Google Campus Tel Aviv on January 2014. Includes 5 hands-on assignments mixed with 5 additional steps to create a full application for remotely controlling YouTube on another computer. Demonstrates usage of AngularJS, Twitter Bootstrap, WebSockets. Discusses forms-based and single page web applications.
Chrome Devtools Protocol via Selenium/Appium (Japanese)Kazuaki Matsuo
This document discusses using the Chrome DevTools Protocol (CDP) via Selenium and Appium to control and inspect Chrome and Android Chrome browsers. It provides examples of executing CDP commands through Selenium for Chrome on desktop and through Appium for Android Chrome. The CDP allows programs to remotely control and inspect browser activity and state.
Introduction to Grunt.js on Taiwan JavaScript ConferenceBo-Yi Wu
This document provides an overview of popular front-end development tools, including Node Version Manager (nvm) for managing Node.js versions, Bower for package management, CoffeeScript for compiling JavaScript, Compass for compiling CSS, RequireJS for module management, and Livereload for live reloading during development. It recommends using Grunt as a task runner to integrate these tools, describing how to configure Grunt plugins for Bower, CoffeeScript, and Compass.
The document discusses Google App Engine (GAE) and its support for PHP. It provides an overview of GAE and PHP, including supported PHP extensions, tools, and how to connect to Google Cloud SQL and Cloud Storage from PHP applications. It also discusses other GAE services like Memcache, task queues, logging, and cron jobs. The document concludes with examples of applications that can be developed with GAE PHP and limitations to be aware of.
Architecture of a Next-Generation Parallel File System Great Wide Open
The document discusses the architecture of the next-generation parallel file system OrangeFS. OrangeFS distributes file data and metadata across multiple file servers and storage devices. It supports simultaneous access by multiple clients. Recent additions to OrangeFS include a scalable metadata operation protocol, support for SSD metadata storage, a Windows client, direct client access interface, client caching, WebDAV integration, and an S3 interface.
Migrating to Free Software: a Reference Protocol for LibreOffceGreat Wide Open
The document outlines a reference protocol for migrating to LibreOffice. It involves analyzing current document workflows and macros, testing the impact of migration, training internal trainers and end users, providing long-term support, and evolving the migration over time. Key aspects include communicating the changes, converting documents and templates, optimizing processes, and engaging the LibreOffice community for support. The goal is a successful transition to the free and open-source LibreOffice suite.
This document provides an overview of MariaDB and its history and features. It discusses how MariaDB originated from MySQL and was created as an alternative open source database. It then summarizes some of MariaDB's key features, including improvements to replication, optimization, storage engines, administration tools, and its support for dynamic columns.
This document discusses principles of antifragile design. It emphasizes designing for diversity among users by understanding different mindsets and contexts through user research and data. It stresses iterating quickly based on feedback, sharing work publicly in early stages, and embracing uncertainty. Well-designed systems can evolve and adapt to users' changing needs over time by deciding on defaults instead of excessive options and customization.
The document discusses how constraints can cultivate growth. It suggests 5 ways that constraints can help: 1) use fewer resources, 2) create regulations, 3) remove distractions, 4) self-organize, and 5) stretch your comfort zone. Constraints shape problems and provide clear challenges to overcome, helping to make decisions, improve experiences, increase productivity, work together, and grow and learn.
Next-generation filesystems such as ZFS and btrfs provide advanced features over traditional filesystems like ext4. These features include per-block checksumming for detection and correction of data corruption, copy-on-write design for efficient snapshots, and potential for high performance. However, btrfs is still maturing while ZFS is well-established due to its longer development history and integration with major operating systems. Overall, next-generation filesystems improve data integrity, management, and protection compared to earlier generations.
The document discusses which database to use for different situations. It begins with explaining why a relational database may not be suitable for all problems and then describes different database categories including key-value stores, column family databases, document databases, graph databases, and Hadoop. It notes the characteristics and uses of each database type. The document concludes that the choice depends on factors like data structure, scalability needs, and workload.
The document discusses test automation using Selenium and provides guidance on best practices. It covers topics like test design approaches, automation-friendly test techniques, special test cases for things like data and graphics, and perspectives on test automation. The document also discusses test frameworks, libraries and patterns commonly used with Selenium. It provides examples of keyword-driven and behavior-driven test automation using domain-specific languages.
You Don't Know Node: Quick Intro to 6 Core FeaturesGreat Wide Open
This document provides an introduction to Node.js and discusses its core features including:
- Node.js is asynchronous and event-driven, allowing it to handle multiple requests simultaneously without blocking.
- It uses a single thread model with non-blocking I/O, utilizing an event loop to process tasks in parallel.
- Common data types like streams and buffers are used to handle binary data and large files efficiently without blocking the thread.
The document discusses different mobile development options including native, cross-platform, and mobile web approaches. It focuses on PhoneGap and Titanium, providing overviews of how they work and code examples. PhoneGap allows developing mobile apps using web technologies by wrapping them in a native container, while Titanium uses a JavaScript API to bridge to native mobile platforms for a native-like experience. The document compares the options and demonstrates coding in Titanium.
Lightning Talk - Getting Students Involved In Open SourceGreat Wide Open
Lightning Talks are presented by Opensource.com
Chris Aniszczyk
Executive Director (interim)
Cloud Native Computing Foundation
Great Wide Open 2016
Atlanta, GA
March 17th, 2016
Building Your First App: An Introduction to MongoDBGreat Wide Open
Robert Stam gave an introduction to MongoDB and building the first app. He discussed that MongoDB is a document database that uses JSON-like documents with dynamic schemas, horizontal scaling, and high performance. He then demonstrated creating a basic library management application in MongoDB by defining entities as collections, inserting sample data, and performing queries.
This document provides a summary of MySQL features over time:
- It describes the early history of MySQL from 1983 to 2005, including key releases and acquisitions by Oracle and Sun.
- From 2008 to 2013, it discusses Oracle's ownership of MySQL and the founding of MariaDB as an alternative open source database.
- The document then outlines new features and improvements in MySQL versions 5.6 and MariaDB, including InnoDB performance, replication, partitioning and query optimization.
Andy Watson, an employee of Ionic Security, gave a presentation on properly using cryptography in applications. The presentation covered topics such as random number generation, hashing, salting passwords, key derivation functions, symmetric encryption algorithms and common mistakes made with cryptography. The goal was to help people avoid vulnerabilities like unsalted hashes, hardcoded keys, weak random number generation and improper encryption modes.
Software Defined Networking: The OpenDaylight ProjectGreat Wide Open
The document discusses OpenDaylight and its Hydrogen release. It provides an overview of OpenDaylight, describing it as an open-source SDN platform built by an open community. The Hydrogen release included 14 projects and delivered capabilities like a controller, virtual tenant networking, and OpenStack integration. Key learnings discussed were the importance of community building and collaboration. Metrics on code volume and contributors for OpenDaylight and other projects were also presented. Future work discussed for the Helium release includes new projects, a focus on code quality and stability, and reducing manual processes.
Open Source and Cyber Security: Open Source Software's Role in Government Cyb...Great Wide Open
This document summarizes the cybersecurity research agenda of the U.S. Department of Homeland Security Science and Technology Directorate. It discusses how DHS is focusing on areas like critical infrastructure security, open source software, cyber-physical systems, and new technology programs. The research aims to drive innovation in cybersecurity solutions through collaboration with academia, industry and open source communities to address evolving threats and transition technologies for real-world use.
What's New and Newer in Apache httpd-24Jim Jagielski
Jim Jagielski presents an overview of new features and enhancements in Apache HTTP Server version 2.4, including configuration and runtime improvements, new modules and capabilities, cloud and proxy enhancements, performance increases, and support for HTTP/2. Key highlights include finer-grained configuration controls, new modules like mod_lua and mod_macro, improved proxy and load balancing functionality, better performance through optimizations and new MPMs like Event, and initial HTTP/2 support.
Apache httpd 2.4 Reverse Proxy: The Hidden GemJim Jagielski
The document discusses the reverse proxy capabilities of Apache HTTP Server (httpd) version 2.4. It notes that httpd is commonly used as a front-end reverse proxy and that its proxy capabilities have improved in version 2.4, including support for load balancing, connection pooling, and dynamic configuration. The document provides examples of configuring reverse proxying, load balancing clusters, and other advanced proxy features in httpd.
ApacheCon 2017: What's new in httpd 2.4Jim Jagielski
What new is Apache httpd 2.4, both in upgrading from httpd 2.2 and well as new features in this latest version. Performance, HTTP/2, reverse proxy and cache!
This document contains slides from a presentation given by Jim Jagielski at APACHECON North America on September 9-12, 2019. The presentation provides an overview and review of key features of Apache HTTP Server version 2.4, including improvements to configuration, new modules, enhancements for cloud/proxy usage, and performance increases. It highlights capabilities like mod_macro for virtual hosts, expression-based configuration with <IfDefine>, and health checking of backend servers. The presentation aims to dispel myths about Apache being outdated and argues it remains highly relevant due to its flexibility and performance.
Apache httpd v2.4 is well-suited for cloud environments due to improvements that increase performance, flexibility, and dynamic configuration capabilities. It has been enhanced as a reverse proxy with load balancing and support for additional protocols. Benchmark tests show that for transaction speed, the prefork MPM performs best, though other MPMs are on par for concurrency. Apache remains a robust and customizable web server option.
Apache httpd v2.4 provides significant improvements for high performance and suitability for the cloud. Some key enhancements include improved reverse proxy capabilities, load balancing, bandwidth control, timeouts, and logging. Benchmark results show that Apache httpd can match or exceed the performance of Nginx for certain workloads. Overall, Apache httpd 2.4 remains highly competitive for both traditional and cloud-based web serving.
Jim Jagielski discusses improvements to Apache HTTP Server 2.4 including enhanced performance, support for asynchronous I/O, additional multi-processing modules, and improved functionality for reverse proxy servers. Key enhancements to Apache's reverse proxy module mod_proxy include support for additional protocols like FastCGI and SCGI, improved load balancing capabilities, and an embedded administration interface.
Most of us are familiar with HTTP, but when it actually comes to creating cacheable web content, there is still a lot to be learned. In this presentation I will show you how to leverage specific mechanism to achieve a good hit rate without losing touch with some of the challenges of real-life web projects. Keywords: cache control, cache variations, conditional requests, stateful content, HTTP fragments, invalidation. The goals is to empower developers to control the behavior of reverse caching proxies like Varnish, Content Delivery Networks, or even browser cache, using the power of HTTP.
More information about this HTTP caching talk can be found on https://feryn.eu/speaking/leverage-http-to-deliver-cacheable-websites-codemotion-rome-2018/
This document discusses profiling PHP applications to improve performance. It recommends profiling during development to identify inefficiencies. The document introduces Xdebug for profiling PHP code and Webgrind, a PHP frontend for visualizing Xdebug profiles. It provides an example of profiling a sample PHP application, identifying issues, making code changes, and verifying performance improvements through re-profiling.
My slides from WordCamp Dhaka 2019 on WordPress Scaling. In this session I explained performance optimisation using HTTP/2, Caching and compressing resources.
I also explained how to Dockerize WordPress to make it easier to scale.
The document discusses Apache httpd v2.4 and its use as a reverse proxy. Key points include: Apache httpd v2.4 has improvements that make it suitable for cloud environments and dynamic configurations; it supports load balancing, clustering, caching, and offloading SSL to improve performance and high availability when used as a reverse proxy; directives like ProxyPass and ProxyPassReverse are used to configure proxying and load balancing using modules like mod_proxy and mod_proxy_balancer.
Tame Your Build And Deployment Process With Hudson, PHPUnit, and SSHDavid Stockton
The document discusses setting up continuous integration using Hudson. It explains that Hudson automates build and deployment processes, provides instant feedback, and helps keep teams honest about tests. Setup involves installing Java, Hudson, and configuring a sample project in Hudson to build from a Git repository on each commit.
Ganeti Web Manager: Cluster Management Made SimpleOSCON Byrum
Looking for an easy, scalable way to manage your Ganeti-based clusters? Ganeti Web Manager provides admins an easy to deploy, Django based GUI that effectively manages private clusters & works equally well for providing customers access. With a caching system designed to scale to thousands of virtual machines without decreasing performance, Ganeti Web Manager makes cluster management truly simple.
Plack provides a common interface called PSGI (Perl Server Gateway Interface) that allows Perl web applications to run on different web servers. It includes tools like Plackup for running PSGI applications from the command line and middleware for adding functionality. Plack has adapters that allow many existing Perl web frameworks to run under PSGI. It also provides high performance PSGI servers and utilities for building and testing PSGI applications.
This document provides an overview and introduction to web scraping using Python. It discusses what scraping is, how HTTP requests work, important tools for scraping like Beautiful Soup and regular expressions, and techniques like using different user agents. It provides code examples for scraping price data from a website, extracting Facebook permissions, and using Google Translate and the Facebook API to post a translated text to Facebook. It also briefly introduces the Shodan search engine for finding exposed devices on the internet.
Presentation from webinar held on August 19th, 2020, with Xdebug developer Derick Rethans and Seravo CEO Otto Kekäläinen.
This presentation shows you how to use Xdebug (which is very easy with the Seravo WordPress development environment!) to make a record of what the WordPress PHP code does during a website page load, and how to use that information to optimize the performance of your WordPress site.
For a video recording and Dericks presentation see https://seravo.com/blog/webinar-xdebug-profile-php/
Open up your platform with Open Source and GitHubScott Graham
The document provides information about open sourcing projects and using GitHub. It discusses the benefits of open sourcing including increased adoption, feedback, and community. It then outlines the steps to open source a project including picking something to open source, deciding where to host it (e.g. GitHub), setting up a GitHub repository, using Git concepts like branches, structuring the project, and cleaning up and pushing the code. The document concludes with recommendations like using private and public repositories, taking advantage of GitHub tools, and considering package managers.
Breaking Free from Proprietary Gravitational PullGreat Wide Open
This document provides an overview and agenda for a presentation about breaking free from proprietary software and embracing open source. The presentation covers the business and legal considerations for open sourcing existing software projects, including ownership models, licensing strategies, and governance approaches. It also addresses how to structure R&D, sales, and support organizations to be successful with open source and how to build and invest in developer and user communities. The goal is to help companies chart a course to transition existing proprietary software to open source models and practices.
The document discusses best practices for running MySQL on Linux, covering choices for Linux distributions, hardware recommendations including using solid state drives, OS configuration such as tuning the filesystem and IO scheduler, and MySQL installation and configuration options. It provides guidance on topics like virtualization, networking, and MySQL variants to help ensure successful and high performance deployment of MySQL on Linux.
This document discusses search interfaces and principles. It begins with an introduction to the presenter and then covers topics like how search engines work, principles of good search design, and common front-end search patterns. Specific concepts discussed include indexing text, query analysis, scoring and ranking documents, filtering results, aggregations, autocomplete, highlighting search terms, and loading more results. The overall message is that search provides a powerful and flexible way to return relevant content to users.
This document provides an overview of open source software. It defines open source as software that is freely available with its source code and allows others to use, modify, and distribute the software. It discusses the main open source licenses like permissive, weak copyleft, and strong copyleft licenses. It also covers the different types of open source community governance models like walled gardens, benevolent dictators, and meritocracies. Finally, it provides tips for building open source communities through email lists, consensus, positivity, and sharing.
This document discusses using Elasticsearch for SQL users. It covers search queries, data modeling, and architecture approaches. The agenda includes search queries, data modeling, and architecture. A live demo shows searching a single field, multiple fields, and phrases. Data modeling discusses analyzing or not analyzing fields. Relationships can be modeled through application joins, data denormalization, nested objects, or parent-child documents. Architecture approaches include using triggers, asynchronous replication, and forked writes from applications with or without Logstash.
This document discusses RAID, replication using ZFS, and their benefits. It explains that software RAID like ZFS and Btrfs can provide parity and mirroring with flexibility. ZFS asynchronous replication allows block-level copying of snapshots to another system, preserving metadata and with less load than rsync. This allows fast, efficient off-site backups of entire filesystems including snapshots over time. The document promotes these features as essential for small businesses to reliably protect their data.
Mirantis is a company that provides OpenStack cloud technology and services. OpenStack is an open source cloud platform that includes modules for compute, networking, storage, identity management, and more. There are different types of cloud environments, including public clouds that are shared and maintained by cloud providers, private clouds that are isolated within a single organization, and hybrid clouds that combine on-premise and external cloud resources. Hybrid clouds allow organizations to burst to public clouds for additional capacity when needed and improve disaster recovery. Mirantis helps organizations implement OpenStack-based private and hybrid clouds.
This document summarizes a presentation on Big Data analytics using R. It introduces R as a programming language for statistics, mathematics, and data science. It is open source and has an active user community. The presentation then discusses Revolution R Enterprise, a commercial product that builds upon R to enable high performance analytics on big data across multiple platforms and data sources through parallelization, distributed computing, and integration tools. It aims to allow writing analytics code once that can be deployed anywhere.
Secure Cloud Hosting: Real Requirements to Protect your DataGreat Wide Open
The document discusses securing data in the cloud. It covers many aspects of cloud security including physical security of data centers, perimeter security, virtual server security, supporting security services, secure administrative access, business continuity, and compliance. The presentation provides an overview of challenges for cloud consumers and providers and provides recommendations for a holistic security approach when using the cloud.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Project Management Semester Long Project - Acuityjpupo2018
Acuity is an innovative learning app designed to transform the way you engage with knowledge. Powered by AI technology, Acuity takes complex topics and distills them into concise, interactive summaries that are easy to read & understand. Whether you're exploring the depths of quantum mechanics or seeking insight into historical events, Acuity provides the key information you need without the burden of lengthy texts.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Webinar: Designing a schema for a Data WarehouseFederico Razzoli
Are you new to data warehouses (DWH)? Do you need to check whether your data warehouse follows the best practices for a good design? In both cases, this webinar is for you.
A data warehouse is a central relational database that contains all measurements about a business or an organisation. This data comes from a variety of heterogeneous data sources, which includes databases of any type that back the applications used by the company, data files exported by some applications, or APIs provided by internal or external services.
But designing a data warehouse correctly is a hard task, which requires gathering information about the business processes that need to be analysed in the first place. These processes must be translated into so-called star schemas, which means, denormalised databases where each table represents a dimension or facts.
We will discuss these topics:
- How to gather information about a business;
- Understanding dictionaries and how to identify business entities;
- Dimensions and facts;
- Setting a table granularity;
- Types of facts;
- Types of dimensions;
- Snowflakes and how to avoid them;
- Expanding existing dimensions and facts.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
2. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
About Me
➡ Apache Software Foundation
➡ Co-founder, Director, Member and Developer
➡ Director
➡ Outercurve, MARSEC-XL, OSSI, OSI (ex)…
➡ Developer
➡ Mega FOSS projects
➡ O’Reilly Open Source Award: 2013
➡ European Commission: Luminary Award
➡ Sr. Director: Tech Fellows: Capital One
3. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Hold on a tic
➡ How do you define “new”??
4. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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!
5. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Apache httpd 2.4 - design drivers
➡ 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
Currently at version 2.4.18 (2.4.1 went GA Feb 21, 2012)
6. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
What’s New: Apache httpd 2.4
➡ Configuration / Runtime Improvements
➡ New Modules / Capabilities
➡ Cloud / Proxy Enhancements
➡ Performance Increases
➡ HTTP/2
7. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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>
8. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
9. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Configuration - Runtime
➡ Require
➡ Removes order/deny insanity!
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>
10. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
New Modules
➡ 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
11. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Configuration - Runtime
➡ Simple config-file variables: <Define>
<IfDefine TEST>
Define servername test.example.com
</IfDefine>
<IfDefine !TEST>
Define servername www.example.com
Define SSL
</IfDefine>
DocumentRoot /var/www/${servername}/htdocs
13. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
14. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
<Directory "/var/www/docs/status">
AddOutputFilter Sed html
OutputSed "s/complete/DONE/g"
OutputSed “s/in-progress/TODO/g"
</Directory>
RemoteIPHeader X-Client-IP
15. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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>
16. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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>
17. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Even more!
➡ mod_cache
➡ Can serve stale data if required
➡ X-Cache-Header now supports HIT/MISS/
REVALIDATE
➡ Can cache HEAD
➡ htcacheclean improvements
➡ mod_socache / mod_slotmem
➡ Data object/blog storage mechanisms
18. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
New Modules
➡ mod_proxy submodules:
➡ mod_proxy_fcgi
➡ mod_proxy_scgi
➡ mod_proxy_wstunnel
➡ mod_proxy_html
➡ mod_proxy_express
ProxyExpressEnable on
ProxyExpressDBMFile emap
…
##
##express-map.txt: httxt2dbm -i express-map.txt -o emap
##
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
19. 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 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)
20. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
21. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
22. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
➡ Brand New: Support for Unix Domain Sockets
23. 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/
ProxyPass /foo unix:/home/www.socket|http://localhost/bar/
24. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
balancer-manager
➡ Embedded proxy admin web interface
➡ Allows for real-time
➡ Monitoring of stats for each worker
➡ Adjustment of worker params
➡ Allows for real-time
➡ Addition of new workers/nodes
➡ Change of LB methods
➡ Can be persistent!
➡ More RESTful
➡ Can be CLI-driven
25. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
26. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
server-status aware
28. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
29. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Raw Performance
➡ Event MPM : no longer experimental
➡ non-blocking
➡ async
➡ Faster, more efficient APR
➡ Smaller memory footprint
➡ More efficient data structures (worker and event)
30. 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.18-dev, nginx 1.8.1
➡ CentOS6, Dual Xeon 3.33GHz
➡ 4GB memory
➡ localhost loopback and external (no firewall)
➡ Double checked results: OSX 10.11.2 (8-core), Fedora 23 (4-core)
31. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Setup
loopbackSetup 1:
Setup 2:
Setup 3:
Setup 3:
32. 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->20000, numcalls=3,10,100)
➡ 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)
33. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
34. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
35. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Total req/resp time
Comparison - total transaction (close)
0
500
1000
1500
2000
Prefork Worker Event nginx
Increasing concurrency
36. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
37. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
38. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
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
39. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
What’s next?
➡ HTTP/2 support for proxy*
➡ TCP Proxy*
➡ Dynamic health-checks*
➡ Better async support
➡ More MPMs
➡ motorz:
➡ Streamlined event driven MPM
➡ Prelim benchmarks: 10% faster, 70% the size
➡ You tell us!
40. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Thanks
Twitter: @jimjag
Emails:
jim@jaguNET.com
jim@apache.org
jim.jagielski@capitalone.com
http://www.slideshare.net/jimjag/