Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
- HTTP/1.x Protocol
- Understanding request and response formats
- Analyzing HTTP traffic using tcpdump and Wireshark
- Examining HTTP headers within a web browser
- Sending requests with CURL
- Overview of common headers
- Request pipelining techniques
- Content length and chunked encoding mechanisms
- MIME types
- Installing Nginx
- Installing Nginx via Debian packages
- Exploring Nginx variants available in Debian and Ubuntu
- Compiling and installing Nginx from source
- Starting the Nginx service
- Upgrading Nginx versions
- Configuring Nginx as a Static File Server
- Understanding the general configuration file structure
- Setting up virtual hosts
- Configuring location blocks
- Understanding the location lookup order
- Customizing error pages
- Configuring redirects
- Implementing URL rewriting rules
- Serving placeholder GIF images
- Using internal and named locations
- Overriding default MIME types
- Optimizing Client-Side Performance
- Enabling resource caching for clients
- The role of the Vary: header
- Reducing the number of HTTP requests
- Utilizing keep-alive connections
- Strategies for handling dynamic resource changes
- How web frameworks manage static files
- Content Post-Processing
- Applying Gzip compression
- Performing image scaling
- Access Control Mechanisms
- Restricting file access based on IP address
- Implementing geographical restrictions
- Hiding version control system (VCS) directories and private files
- Setting up Basic authentication
- Exploring other authentication methods
- Combining multiple access restrictions
- Creating secure links
- Applying Traffic Limits
- Traffic shaping techniques
- Grouping requests for effective limiting
- Implementing rate-limiting for requests
- Restricting simultaneous connections
- Using Nginx as a Reverse Proxy
- Supported upstream protocols
- Handling self-signed upstream SSL certificates
- Passing parameters to FastCGI and uWSGI backends
- Proxying WebSocket connections
- Utilizing X-Accel-* headers
- Modifying headers received from and sent to upstream servers
- Language-Specific Reverse Proxy Configurations
- PHP integration
- Python integration
- Ruby integration
- Configuring Nginx as an SSL Terminator
- Generating self-signed SSL certificates
- Obtaining certificates from Let's Encrypt
- Restricting available cipher suites
- Working with SSL session tickets
- Implementing OCSP stapling
- Verifying SSL configuration
- Accepting client-side certificates
- Considerations for HTTP/2
- Load Balancing with Nginx
- Defining upstream groups
- Implementing sticky sessions using ip_hash
- Advanced features of Nginx Plus as a load balancer
- Alternatives to Nginx and Nginx Plus
- Placing another Nginx instance behind a Nginx load balancer
- Using Nginx behind HAProxy or AWS load balancers
- Setting Up Nginx as a Cache
- Configuring Nginx to cache pages
- Understanding how Nginx responds to standard caching headers
- Adjusting tunable cache parameters
- Comparing Nginx cache with application-level cache
- Clearing the cache
- Deploying Popular Web Applications with Nginx
- The specific list of applications covered will be determined by the trainer
- Logging Management
- Managing access and error log files
- Defining custom log formats
- Tracking slow requests
- Optimizing logging performance
- Implementing log rotation
- Analyzing logs using external programs
- Monitoring Nginx Performance
- Using the Nginx stub status page
- Utilizing the Nginx Plus extended live status page
- Key metrics and alerts typically monitored by monitoring systems for Nginx
- [Optional] Achieving High Availability with Nginx¹
- Deploying identical static content across multiple servers
- Configuration sharing strategies
- Fail-over mechanisms using elastic or virtual IP addresses
- Setting up VRRP with Keepalived
- Exploring other high-availability stacks
- Nginx Plus integration with Keepalived
- Addressing Common Mistakes and Security Issues in Nginx Configuration
- Troubleshooting Common Performance Issues
¹ The High Availability section requires a network setup that may trigger intrusion detection systems or necessitate multiple virtual machines per participant (a requirement not shared by other topics). Therefore, this section is not included by default.
Requirements
Participants should be proficient in using the Linux command line and possess a working knowledge of TCP/IP networking.
21 Hours
Testimonials (1)
The trainer was very knowledgeable and was able to answer most questions that were somewhat outside of the scope of what we needed to cover. He was dynamic, funny and polite.