Get in Touch

Course Outline

  1. HTTP/1.x Protocol
    1. Understanding request and response formats
    2. Analyzing HTTP traffic using tcpdump and Wireshark
    3. Examining HTTP headers within a web browser
    4. Sending requests with CURL
    5. Overview of common headers
    6. Request pipelining techniques
    7. Content length and chunked encoding mechanisms
    8. MIME types
  2. Installing Nginx
    1. Installing Nginx via Debian packages
    2. Exploring Nginx variants available in Debian and Ubuntu
    3. Compiling and installing Nginx from source
    4. Starting the Nginx service
    5. Upgrading Nginx versions
  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 the location lookup order
    5. Customizing error pages
    6. Configuring redirects
    7. Implementing URL rewriting rules
    8. Serving placeholder GIF images
    9. Using internal and named locations
    10. Overriding default MIME types
  4. Optimizing Client-Side Performance
    1. Enabling resource caching for clients
    2. The role of the Vary: header
    3. Reducing the number of HTTP requests
    4. Utilizing keep-alive connections
    5. Strategies for handling dynamic resource changes
    6. How web frameworks manage static files
  5. Content Post-Processing
    1. Applying Gzip compression
    2. Performing image scaling
  6. Access Control Mechanisms
    1. Restricting file access based on IP address
    2. Implementing geographical restrictions
    3. Hiding version control system (VCS) directories and private files
    4. Setting up Basic authentication
    5. Exploring other authentication methods
    6. Combining multiple access restrictions
    7. Creating secure links
  7. Applying Traffic Limits
    1. Traffic shaping techniques
    2. Grouping requests for effective limiting
    3. Implementing rate-limiting for requests
    4. Restricting simultaneous connections
  8. Using 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 Configurations
    1. PHP integration
    2. Python integration
    3. Ruby integration
  10. Configuring Nginx as an SSL Terminator
    1. Generating self-signed SSL certificates
    2. Obtaining certificates from Let's Encrypt
    3. Restricting available cipher suites
    4. Working with SSL session tickets
    5. Implementing 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. Placing another Nginx instance behind a Nginx load balancer
    6. Using Nginx behind HAProxy or AWS load balancers
  12. Setting Up Nginx as a Cache
    1. Configuring Nginx to cache pages
    2. Understanding how Nginx responds to standard caching headers
    3. Adjusting tunable cache parameters
    4. Comparing Nginx cache with application-level cache
    5. Clearing the cache
  13. Deploying Popular Web Applications with Nginx
    1. The specific list of applications covered will be determined by the trainer
  14. Logging Management
    1. Managing access and error log files
    2. Defining custom log formats
    3. Tracking slow requests
    4. Optimizing logging performance
    5. Implementing log rotation
    6. Analyzing logs using external programs
  15. Monitoring Nginx Performance
    1. Using the Nginx stub status page
    2. Utilizing the Nginx Plus extended live status page
    3. Key metrics and alerts typically monitored by monitoring systems for Nginx
  16. [Optional] Achieving High Availability with Nginx¹
    1. Deploying identical static content across multiple servers
    2. Configuration sharing strategies
    3. Fail-over mechanisms using elastic or virtual IP addresses
    4. Setting up VRRP with Keepalived
    5. Exploring other high-availability stacks
    6. Nginx Plus integration with Keepalived
  17. Addressing Common Mistakes and Security Issues in Nginx Configuration
  18. 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

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories