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 via CURL
    5. Exploring common HTTP headers
    6. Implementing request pipelining
    7. Managing content length and chunked encoding
    8. Working with MIME types
  2. Installing Nginx
    1. Setting up Nginx from 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 configuration file structure
    2. Setting up virtual hosts
    3. Configuring location blocks
    4. Understanding the location lookup order
    5. Customizing error pages
    6. Implementing redirects
    7. Performing various URL rewriting tasks
    8. Serving an empty GIF image
    9. Utilizing internal and named locations
    10. Overriding default MIME types
  4. Client-Side Performance Optimization
    1. Enabling resource caching for clients
    2. Managing the Vary: header
    3. Reducing the total number of HTTP requests
    4. Implementing keep-alive connections
    5. Handling dynamic resource requirements
    6. Integrating static files within web frameworks
  5. Content Post-Processing
    1. Applying Gzip compression
    2. Performing image scaling
  6. Access Control
    1. Restricting file access based on IP addresses
    2. Implementing geographical restrictions
    3. Hiding VCS directories and sensitive files
    4. Setting up basic authentication
    5. Exploring alternative authentication methods
    6. Combining multiple access restrictions
    7. Creating secure links
  7. Applying Limits and Traffic Management
    1. Shaping network traffic
    2. Grouping requests for effective limiting
    3. Rate-limiting incoming requests
    4. Restricting the number of 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. 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. 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 via ip_hash
    3. Exploring Nginx Plus advanced load balancing features
    4. Comparing alternatives to Nginx and Nginx Plus
    5. Deploying Nginx behind another Nginx load balancer
    6. Placing Nginx behind HAProxy or AWS load balancers
  12. Configuring Nginx as a Cache
    1. Instructing Nginx to cache pages
    2. Understanding Nginx's reaction to standard caching headers
    3. Tuning cache parameters
    4. Comparing Nginx cache with application-level cache
    5. Clearing the cache manually
  13. Deploying Popular Web Applications with Nginx
    1. Application selection determined by the instructor
  14. Logging Configuration
    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 with external tools
  15. Monitoring Nginx
    1. Using the Nginx stub status page
    2. Utilizing the Nginx Plus extended live status page
    3. Understanding typical monitoring metrics and alerts for Nginx
  16. [Optional] High Availability with Nginx¹
    1. Distributing static content across multiple servers
    2. Sharing configuration files
    3. Implementing fail-over with elastic/virtual IP addresses
    4. Configuring VRRP using Keepalived
    5. Exploring other high-availability stacks
    6. Integrating Nginx Plus with Keepalived
  17. Common Mistakes and Security Issues in Nginx Configuration
  18. Addressing Common Performance Issues

¹ The High Availability module involves network configurations that may trigger intrusion detection systems or require multiple virtual machines per participant, which is beyond the scope of standard topics. Therefore, it is offered as an optional component.

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