Get in Touch

Course Outline

  1. HTTP/1.x Protocol
    1. Request and response formats
    2. Inspecting HTTP conversations using tcpdump and Wireshark
    3. Examining HTTP headers within a web browser
    4. Making requests with CURL
    5. Common HTTP headers
    6. Request pipelining
    7. Content length and chunked encoding
    8. MIME types
  2. Installing Nginx
    1. Installing Nginx from Debian packages
    2. Nginx variants available in Debian and Ubuntu
    3. Compiling and installing Nginx from source
    4. Starting Nginx services
    5. Upgrading Nginx installations
  3. Configuring Nginx as a Static File Server
    1. Understanding the general configuration file structure
    2. Setting up virtual hosts
    3. Configuring location blocks
    4. Understanding location lookup order
    5. Configuring custom error pages
    6. Setting up URL redirects
    7. Implementing other URL rewriting techniques
    8. Serving empty GIF images
    9. Utilizing internal and named locations
    10. Overriding MIME types
  4. Client-Side Performance Optimization
    1. Enabling client-side caching for resources
    2. Understanding the Vary: header
    3. Minimizing the total number of requests
    4. Utilizing Keep-Alive connections
    5. Managing resource updates
    6. How web frameworks handle static files
  5. Content Post-Processing
    1. Gzip compression
    2. Image scaling
  6. Access Control
    1. Restricting file access based on IP addresses
    2. Implementing geographical restrictions
    3. Securing VCS directories and private files
    4. Basic authentication
    5. Alternative authentication methods
    6. Combining multiple restrictions
    7. Secure links
  7. Applying Limits and Traffic Shaping
    1. Traffic shaping techniques
    2. Grouping requests for rate limiting purposes
    3. Implementing rate limits on requests
    4. Restricting simultaneous connections
  8. Configuring Nginx as a Reverse Proxy
    1. Supported upstream protocols
    2. Handling self-signed upstream SSL certificates
    3. Passing parameters to FastCGI and uWSGI backends
    4. Proxying WebSocket connections
    5. Utilizing X-Accel-* headers
    6. Modifying headers received from and sent to upstream servers
  9. Language-Specific Reverse Proxy Setups
    1. PHP integration
    2. Python integration
    3. Ruby integration
  10. Implementing Nginx as an SSL Terminator
    1. Generating self-signed SSL certificates
    2. Obtaining certificates from Let's Encrypt
    3. Restricting available cipher suites
    4. Managing session tickets
    5. OCSP stapling
    6. Verifying SSL configuration
    7. Accepting client-side certificates
    8. Considerations for HTTP/2
  11. Load Balancing with Nginx
    1. Defining upstream groups
    2. Implementing sticky sessions using ip_hash
    3. Advanced features of Nginx Plus as a load balancer
    4. Alternatives to Nginx and Nginx Plus
    5. Deploying Nginx behind a Nginx load balancer
    6. Placing Nginx behind HAProxy or an AWS load balancer
  12. Using Nginx as a Cache
    1. Configuring Nginx to cache pages
    2. How Nginx responds to standard caching-related headers
    3. Adjustable cache parameters
    4. Comparing Nginx cache with application-level caches
    5. Clearing the cache
  13. Deploying Popular Web Applications with Nginx
    1. The list of applications to be discussed is determined by the trainer
  14. Logging and Log Management
    1. Access log and error log files
    2. Specifying custom log formats
    3. Tracking slow requests
    4. Optimizing logging performance
    5. Log rotation
    6. Log analysis using external programs
  15. Monitoring Nginx
    1. Using the Nginx stub status page
    2. Using the Nginx Plus extended live status page
    3. Typical monitoring systems' plots and alerts for Nginx
  16. [Optional] High Availability with Nginx¹
    1. Deploying identical static content across multiple servers
    2. Configuration sharing
    3. Fail-over using an elastic/virtual IP address
    4. Setting up VRRP with Keepalived
    5. Other high-availability stacks
    6. Nginx Plus integration with Keepalived
  17. Common Mistakes and Security Issues Related to Nginx Configuration
  18. 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 each (a requirement not needed for other topics). Therefore, it is not provided by default.

Requirements

Participants should be comfortable with the Linux command line and possess a working knowledge of TCP/IP.

 21 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories