Course Outline
- HTTP/1.x Protocol
- Structure of requests and responses
- Examining HTTP traffic using tcpdump and Wireshark
- Viewing HTTP headers in a web browser
- Sending requests with CURL
- Essential HTTP headers
- Request pipelining
- Content length and chunked encoding
- MIME types
- Installing Nginx
- Installing Nginx via Debian packages
- Exploring Nginx variants available in Debian and Ubuntu
- Building and installing Nginx from source
- Starting the Nginx service
- Upgrading Nginx
- Using Nginx as a Static File Server
- Understanding the configuration file structure
- Setting up virtual hosts
- Configuring location blocks
- Understanding location matching precedence
- Customizing error pages
- Implementing redirects
- Advanced URL rewriting techniques
- Serving an empty GIF image
- Internal and named locations
- Overriding MIME types
- Optimizing Client-Side Performance
- Enabling client-side caching
- The Vary: header
- Reducing the number of requests
- Utilizing keep-alive connections
- Handling dynamic resource changes
- How web frameworks manage static files
- Content Post-Processing
- Gzip compression
- Image scaling
- Access Control
- Restricting file access by IP address
- Implementing geographical restrictions
- Securing VCS directories and private files
- Basic authentication
- Other authentication methods
- Combining multiple access restrictions
- Creating secure links
- Applying Traffic Limits
- Traffic shaping
- Grouping requests for effective limiting
- Rate-limiting 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 sent and received by the upstream server
- Language-Specific Reverse Proxy Configurations
- PHP
- Python
- Ruby
- Nginx as an SSL Terminator
- Generating self-signed SSL certificates
- Obtaining certificates from Let's Encrypt
- Restricting available cipher suites
- Working with session tickets
- 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
- Deploying an Nginx instance behind a Nginx load balancer
- Placing Nginx behind HAProxy or an AWS load balancer
- Nginx as a Cache
- Configuring Nginx to cache pages
- How Nginx responds to standard caching headers
- Tunable cache parameters
- Nginx cache versus application-level cache
- Clearing the cache
- Deploying Popular Web Applications with Nginx
- The selection of applications to be discussed is determined by the trainer
- Logging
- Access log and error log files
- Defining custom log formats
- Tracking slow requests
- Optimizing logging performance
- Log rotation
- Log analysis using external programs
- Monitoring Nginx
- The Nginx stub_status page
- The Nginx Plus extended live status page
- Typical metrics plotted and alerts configured in monitoring systems for Nginx
- [Optional] High Availability with Nginx¹
- Deploying identical static content across multiple servers
- Configuration sharing
- Fail-over using an elastic or virtual IP address
- Setting up VRRP with Keepalived
- Other high-availability stacks
- Integrating Nginx Plus with Keepalived
- Common Mistakes and Security Issues in Nginx Configuration
- Common Performance Issues
¹ The High Availability section requires a network setup that may trigger intrusion detection systems or necessitate multiple virtual machines per participant, which is not required by other topics. Therefore, this section is not provided by default.
Requirements
Participants should be proficient in using the Linux command line and possess a working knowledge of TCP/IP.
Custom Corporate Training
Training solutions designed exclusively for businesses.
- Customized Content: We adapt the syllabus and practical exercises to the real goals and needs of your project.
- Flexible Schedule: Dates and times adapted to your team's agenda.
- Format: Online (live), In-company (at your offices), or Hybrid.
Price per private group, online live training, starting from 3900 € + VAT*
Contact us for an exact quote and to hear our latest promotions
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.