Get in Touch

Course Outline

  1. HTTP/1.x protocol
    1. Structure of requests and responses
    2. Analyzing HTTP traffic using tcpdump and Wireshark
    3. Examining HTTP headers within a web browser
    4. Executing requests with CURL
    5. Overview of common headers
    6. Request pipelining
    7. Understanding content length and chunked encoding
    8. MIME types
  2. Installing Nginx
    1. Installing nginx via Debian packages
    2. Available nginx variants in Debian and Ubuntu
    3. Compiling and installing nginx from source
    4. Starting the nginx service
    5. Upgrading nginx
  3. Utilizing Nginx as a Static File Server
    1. General configuration file structure
    2. Setting up virtual hosts
    3. Configuring location blocks
    4. Understanding location lookup precedence
    5. Configuring custom error pages
    6. Setting up redirects
    7. Implementing URL rewriting
    8. Serving a transparent GIF image
    9. Using internal and named locations
    10. Overriding default MIME types
  4. Optimizing Client-Side Performance
    1. Enabling client-side caching of resources
    2. The role of the Vary: header
    3. Reducing the number of HTTP requests
    4. Utilizing keep-alive connections
    5. Handling resource updates effectively
    6. How web frameworks manage static files
  5. Post-Processing Content
    1. Gzip compression
    2. Image resizing
  6. Access Control
    1. Restricting file access by IP address
    2. Geographical restrictions
    3. Securing VCS directories and private files
    4. Implementing basic authentication
    5. Exploring other authentication methods
    6. Combining multiple restrictions
    7. Generating secure links
  7. Applying Limits
    1. Traffic shaping
    2. Grouping requests for limitation purposes
    3. Rate-limiting requests
    4. Restricting simultaneous connections
  8. Configuring Nginx as a Reverse Proxy
    1. Supported upstream protocols
    2. Handling self-signed SSL certificates from upstream
    3. Passing parameters to FastCGI and uWSGI backends
    4. Proxying WebSocket connections
    5. Using X-Accel-* headers
    6. Modifying headers received from and sent to upstream
  9. Language-Specific Reverse Proxy Setups
    1. PHP
    2. Python
    3. Ruby
  10. 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. HTTP/2 considerations
  11. Load Balancing with Nginx
    1. Defining upstream groups
    2. Implementing sticky sessions using ip_hash
    3. Advanced features of Nginx Plus for load balancing
    4. Alternatives to Nginx and Nginx Plus
    5. Nesting Nginx instances behind a load balancer
    6. Placing Nginx behind HAProxy or an AWS load balancer
  12. Configuring Nginx as a Cache
    1. Instructing nginx to cache pages
    2. How nginx interprets standard caching headers
    3. Adjustable cache parameters
    4. Nginx cache vs. application-level cache
    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
    1. Access and error log files
    2. Defining custom log formats
    3. Tracking slow requests
    4. Optimizing logging performance
    5. Log rotation
    6. External log analysis programs
  15. Monitoring Nginx
    1. Nginx stub status page
    2. Nginx Plus extended live status page
    3. Key metrics monitored and alerted on by typical monitoring systems
  16. [Optional] High Availability with Nginx¹
    1. Deploying identical static content to multiple servers
    2. Sharing configurations
    3. Failover using an elastic/virtual IP address
    4. Setting up VRRP with Keepalived
    5. Other high-availability solutions
    6. Nginx Plus integration with Keepalived
  17. Common Mistakes and Security Issues in Nginx Configuration
  18. Common Performance Issues

¹ The High Availability section involves a network setup that may trigger intrusion detection systems or requires setting up multiple virtual machines per participant (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