Course Outline
1. Brief overview of load balancing and load balancers
2. Introduction to HAProxy
- Defining the scope of HAProxy (what it is and is not)
- Operational mechanics of HAProxy
-
Core functionalities
- Proxying capabilities
- SSL support
- Monitoring tools
- High availability setups
- Load balancing strategies
- Session stickiness
- Data sampling and conversion
- Map management
- ACLs and conditional logic
- Content switching techniques
- Stick-tables implementation
- Formatted string handling
- HTTP rewriting and redirection
- Server protection mechanisms
- Logging configurations
- Statistical reporting
-
Advanced capabilities
- Management functions
- System-specific features
- Scripting integration
- Sizing considerations
- Acquisition and installation methods
3. Alternative solutions to HAProxy
- a. Nginx
- b. Apache and other alternatives
4. Refresher on HTTP protocols
- The HTTP transaction model
- Structure of an HTTP request
- The request line components
- Request headers
- Structure of an HTTP response
- The response line components
- Response headers
5. Setting up HAProxy
- Configuration file syntax
- Handling quotes and escape sequences
- Utilizing environment variables
- Time format specifications
- Practical configuration examples
6. Global configuration parameters
- Process management and security settings
- Performance optimization techniques
- Debugging features
- Userlist definitions
- Peer configuration
- Mailer setup
7. Proxy configuration
- Matrix of proxy keywords
- Alphabetical reference for keywords
8. Bind and server configurations
- Bind directive options
- Server and default-server parameters
- Server DNS resolution settings
- Global overview of options
- Configuring the resolvers section
9. Manipulating HTTP headers
10. Implementing ACLs and sample fetching
- Fundamental ACL concepts
- Boolean matching rules
- Integer matching rules
- String matching rules
- Regular expression (regex) matching
- Matching arbitrary data blocks
- Matching IPv4 and IPv6 addresses
- Constructing conditions using ACLs
- Techniques for fetching samples
- Using converters
- Fetching samples from internal states
- Layer 4 sample fetching
- Layer 5 sample fetching
- Fetching samples from buffer contents (Layer 6)
- Fetching HTTP samples (Layer 7)
- Pre-defined ACLs
11. Logging configuration
- Log severity levels
- Log format types
- Default log format
- TCP log format
- HTTP log format
- Custom log formats
- Error log format
- Advanced logging options
- Suppressing logs for external tests
- Logging prior to session termination
- Elevating log levels during errors
- Disabling logs for successful connections
- Timing event logging
- Session state at disconnection
- Handling non-printable characters
- Capturing HTTP cookies
- Capturing HTTP headers
- Log examples
12. Supported filters
- Trace filter
- HTTP compression
- Stream Processing Offload Engine (SPOE)
- Cache management
- Limitations, SetupCache section
- Proxy section configurations
Requirements
- Solid knowledge of Linux systems and fundamental command-line usage
- Practical experience in server administration, including configuration and monitoring tasks
- Proficiency with networking concepts, particularly HTTP and TCP/IP protocols
Target Audience
- System administrators tasked with overseeing server infrastructure
- Network engineers aiming to deploy high-performance load balancing strategies
- DevOps professionals focused on automating traffic management and service scaling
Testimonials (6)
the training on the job mode
PIERANDREA LAMBERTINI - Istituto Europeo di Oncologia Srl
Course - HAProxy Administration
knowledge about HAProxy
Marco - CloudFire
Course - HAProxy Administration
The possibility to try with labs
Mattia Bernardi - CloudFire
Course - HAProxy Administration
All the tips and tricks on how to improve our HA-proxy
Mattias Stendahl - Hoglandsforbundet
Course - HAProxy Administration
The trainer adapted his course to answer questions even if the questions where out of the course scope.
Mario Kuik - Netherlands Army
Course - HAProxy Administration
I really liked the rapport and connection that the trainer was able to achieve with the class. And that, on the fly, he was able to shape the class into the things we needed.