Get in Touch

Course Outline

  1. HTTP/1.x Protocol
    1. Structure of request and response messages
    2. Analyzing HTTP traffic using tcpdump and Wireshark
    3. Examining HTTP headers within a web browser
    4. Executing requests via CURL
    5. Overview of common HTTP headers
    6. Understanding request pipelining
    7. Content length and chunked encoding mechanisms
    8. Managing MIME types
  2. Installing Nginx
    1. Deployment from Debian packages
    2. Exploring Nginx variants in Debian and Ubuntu
    3. Building and installing Nginx from source code
    4. Starting the Nginx service
    5. Performing Nginx upgrades
  3. Configuring Nginx as a Static File Server
    1. Structure of the Nginx configuration file
    2. Setting up virtual hosts
    3. Configuring location blocks
    4. Understanding location matching precedence
    5. Customizing error pages
    6. Implementing redirects
    7. Advanced URL rewriting techniques
    8. Serving empty GIF images for optimization
    9. Using internal and named locations
    10. Overriding MIME types for specific resources
  4. Optimizing Client-Side Performance
    1. Enabling client-side caching of resources
    2. Utilizing the Vary header
    3. Reducing the total number of HTTP requests
    4. Configuring keep-alive connections
    5. Strategies for handling dynamic resource changes
    6. Managing static files within web frameworks
  5. Content Post-Processing
    1. Implementing Gzip compression
    2. Scaling images on the fly
  6. Access Control Strategies
    1. Restricting file access based on IP addresses
    2. Geographical access restrictions
    3. Hiding version control directories and sensitive files
    4. Implementing Basic authentication
    5. Exploring other authentication methods
    6. Combining multiple access restrictions
    7. Creating secure, time-limited links
  7. Applying Rate Limits and Constraints
    1. Shaping network traffic
    2. Grouping requests for effective limiting
    3. Implementing request rate limits
    4. Limiting simultaneous connections per client
  8. Nginx as a Reverse Proxy
    1. Supported upstream protocols
    2. Handling self-signed SSL certificates from upstream servers
    3. Passing parameters to FastCGI and uWSGI backends
    4. Proxying WebSocket connections
    5. Utilizing X-Accel-* headers
    6. Modifying headers sent to and received from upstream servers
  9. Language-Specific Reverse Proxy Configurations
    1. PHP integration
    2. Python integration
    3. Ruby integration
  10. Nginx as an SSL Terminator
    1. Generating self-signed SSL certificates
    2. Obtaining certificates from Let's Encrypt
    3. Restricting available cryptographic ciphers
    4. Managing SSL session tickets
    5. Implementing OCSP stapling
    6. Verifying SSL configuration security
    7. Accepting client-side certificates
    8. Considering HTTP/2 implications
  11. Load Balancing with Nginx
    1. Defining upstream groups
    2. Implementing sticky sessions using ip_hash
    3. Advanced features in Nginx Plus for load balancing
    4. Alternatives to standard Nginx and Nginx Plus
    5. Deploying a secondary Nginx behind an Nginx load balancer
    6. Placing Nginx behind HAProxy or AWS Load Balancer
  12. Nginx as a Cache Server
    1. Configuring Nginx to cache web pages
    2. Understanding Nginx's response to standard caching headers
    3. Tuning cache parameters
    4. Comparing Nginx cache with application-level caching
    5. Managing cache invalidation
  13. Deploying Popular Web Applications with Nginx
    1. Specific applications covered are at the instructor's discretion
  14. Logging Strategies
    1. Managing access and error log files
    2. Defining custom log formats
    3. Identifying and tracking slow requests
    4. Optimizing log performance
    5. Configuring log rotation
    6. Analyzing logs using external tools
  15. Monitoring Nginx
    1. Using the Nginx stub_status module
    2. Utilizing the Nginx Plus extended live status page
    3. Key metrics and alerts in standard monitoring systems for Nginx
  16. [Optional] Achieving High Availability with Nginx¹
    1. Deploying identical static content across multiple servers
    2. Sharing configuration across nodes
    3. Failover mechanisms using elastic/virtual IP addresses
    4. Configuring VRRP with Keepalived
    5. Exploring other high-availability stacks
    6. Integrating Nginx Plus with Keepalived
  17. Addressing Common Configuration Mistakes and Security Vulnerabilities
  18. Identifying and Resolving Common Performance Issues

¹ The High Availability module requires a specialized network setup that may trigger intrusion detection alerts or necessitate multiple virtual machines per participant, which are not provided by default.

Requirements

Participants should be proficient with the Linux command line and possess a solid understanding of TCP/IP networking concepts.

 21 Hours

Testimonials (1)

Related Categories