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
- Request and response formats
- Analyzing HTTP traffic using tcpdump and Wireshark
- Inspecting HTTP headers in a web browser
- Sending requests with CURL
- Common HTTP headers
- Request pipelining
- Content length and chunked encoding
- MIME types
- Installing Nginx
- Installing Nginx via Debian packages
- Nginx variants available in Debian and Ubuntu
- Building and installing Nginx from source
- Starting the Nginx service
- Upgrading Nginx
- Nginx as a Static File Server
- General structure of the Nginx configuration file
- Setting up virtual hosts
- Configuring location blocks
- Location matching priority order
- Configuring custom error pages
- Setting up redirects
- Other URL rewriting techniques
- Serving transparent GIF images
- Internal and named locations
- Overriding default MIME types
- Client-Side Performance Optimization
- Enabling client-side caching for resources
- The Vary: header
- Reducing the number of HTTP requests
- Keep-alive connections
- Handling dynamic resource changes
- How web frameworks handle static files
- Content Post-Processing
- Gzip compression
- Image scaling
- Access Control
- Restricting file access by IP address
- Geographical restrictions
- Hiding VCS directories and private files
- Basic authentication
- Other authentication methods
- Combining access restrictions
- Secure links
- Applying Limits
- Traffic shaping
- Grouping requests for limit enforcement
- Rate-limiting requests
- Restricting simultaneous connections
- Nginx as a Reverse Proxy
- Supported upstream protocols
- Handling self-signed upstream SSL certificates
- Passing parameters to FastCGI and uWSGI backends
- Proxying WebSocket connections
- X-Accel-* headers
- Modifying request and response headers from upstream
- Language-Specific Reverse Proxy Setups
- PHP
- Python
- Ruby
- Nginx as an SSL Terminator
- Generating self-signed SSL certificates
- Obtaining certificates from Let's Encrypt
- Restricting available cipher suites
- Managing session tickets
- OCSP stapling
- Verifying SSL configuration
- Accepting client-side certificates
- HTTP/2 considerations
- Load Balancing with Nginx
- Defining upstream groups
- Implementing sticky sessions using ip_hash
- Additional features of Nginx Plus as a load balancer
- Alternatives to Nginx and Nginx Plus
- Nested Nginx: Placing Nginx behind a Nginx load balancer
- Nginx behind HAProxy or AWS load balancer
- Nginx as a Cache
- Configuring Nginx to cache pages
- How Nginx interprets standard caching-related headers
- Tunable cache parameters
- Nginx cache vs. application-level cache
- Clearing the cache
- Deploying Popular Web Applications with Nginx
- The list of applications to be discussed is determined by the trainer
- Logging
- Access log and error log files
- Specifying custom log formats
- Tracking slow requests
- Optimizing logging performance
- Log rotation
- Log analysis using external tools
- Monitoring Nginx
- Nginx stub status page
- Nginx Plus extended live status page
- Typical monitoring metrics and alerts for Nginx
- [Optional] High Availability with Nginx¹
- Deploying identical static content across multiple servers
- Configuration sharing
- Failover using elastic/virtual IP addresses
- Setting up VRRP with Keepalived
- Other high-availability solutions
- Nginx Plus integration with Keepalived
- Common Nginx Configuration Mistakes and Security Issues
- Common Performance Issues
¹ The High Availability section involves a network setup that may trigger intrusion detection systems or require participants to set up multiple virtual machines (a requirement not needed for other topics). Therefore, it is not included by default.
Requirements
Participants should be comfortable using the Linux command line and possess a solid understanding of TCP/IP.
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.