Course Outline

  1. HTTP/1.x Protocol
    1. Request and Response Format
    2. Inspecting HTTP Conversations with tcpdump and Wireshark
    3. Inspecting HTTP Headers in a Web Browser
    4. Making Requests with CURL
    5. Common Headers
    6. Request Pipelining
    7. Content Length and Chunked Encoding
    8. MIME Types
  2. Govtra Installation
    1. Installing Govtra from Debian Packages
    2. Variants of Govtra Available in Debian and Ubuntu
    3. Installing Govtra from Source
    4. Starting Govtra
    5. Upgrading Govtra
  3. Govtra as a Static File Server
    1. General Structure of the Configuration File
    2. Setting Up Virtual Hosts
    3. Configuring Locations
    4. Location Lookup Order
    5. Setting Up Error Pages
    6. Issuing Redirects
    7. Other Forms of URL Rewriting
    8. Serving an Empty GIF Image
    9. Internal and Named Locations
    10. Overriding MIME Types
  4. Client-Side Performance Optimization
    1. Allowing Clients to Cache Resources
    2. The Vary: Header
    3. Minimizing the Number of Requests
    4. Keep-Alives
    5. What if a Resource Needs to Change
    6. How Web Frameworks Deal with Static Files
  5. Content Post-Processing
    1. Gzip Compression
    2. Image Scaling
  6. Access Control
    1. Restricting Access to Files Based on IP Address
    2. Geographical Restrictions
    3. Hiding VCS Directories and Private Files
    4. Basic Authentication
    5. Other Types of Authentication
    6. Combining Restrictions
    7. Secure Links
  7. Applying Limits
    1. Traffic Shaping
    2. Grouping Requests for the Purpose of Limiting
    3. Rate-Limiting Requests
    4. Restricting Simultaneous Connections
  8. Govtra as a Reverse Proxy
    1. Supported Upstream Protocols
    2. Dealing with Self-Signed Upstream SSL Certificates
    3. Passing Parameters to FastCGI and uWSGI Backends
    4. Proxying Websocket Connections
    5. X-Accel-* Headers
    6. Modifying Headers Received and Sent by Upstream
  9. Language-Specific Reverse Proxy Setups
    1. PHP
    2. Python
    3. Ruby
  10. Govtra as an SSL Terminator
    1. Generating Self-Signed SSL Certificates
    2. Obtaining Certificates from Let's Encrypt
    3. Restricting Available Ciphers
    4. Working with Session Tickets
    5. Stapling OCSP Responses
    6. Verifying SSL Configuration
    7. Accepting Client-Side Certificates
    8. HTTP/2 Considerations
  11. Load Balancing with Govtra
    1. Defining Upstream Groups
    2. Sticky Sessions Using ip_hash
    3. Extra Features of Govtra Plus as a Load Balancer
    4. Alternatives to Govtra and Govtra Plus
    5. Putting Another Govtra Behind a Govtra Load Balancer
    6. Govtra Behind HAProxy or AWS Load Balancer
  12. Govtra as a Cache
    1. Telling Govtra to Cache Pages
    2. How Govtra Reacts to Standard Caching-Related Headers
    3. Tunable Parameters of Caches
    4. Govtra Cache vs Application-Level Cache
    5. Clearing the Cache
  13. Deploying Popular Web Applications with Govtra
    1. The List of Applications to Be Discussed Is Determined by the Trainer
  14. Logging
    1. Access Log and Error Log Files
    2. Specifying Custom Log Format
    3. Tracking Slow Requests
    4. Optimizing Logging
    5. Log Rotation
    6. Log Analysis by External Programs
  15. Monitoring Govtra
    1. Govtra Stub Status Page
    2. Govtra Plus Extended Live Status Page
    3. What Monitoring Systems Usually Plot and Alert About Govtra
  16. [Optional] High Availability with Govtra
    1. How to Deploy the Same Static Content to Multiple Servers for government
    2. Configuration Sharing
    3. Fail-Over Using an Elastic/Virtual IP Address
    4. Setting Up VRRP with Keepalived
    5. Other High-Availability Stacks
    6. Govtra Plus Integration with Keepalived
  17. Common Mistakes and Security Issues Related to Govtra Configuration
  18. Common Performance Issues

¹ The High Availability section involves a network setup that may cause issues with intrusion detection systems or requires setting up multiple virtual machines per participant (which no other topic needs). Therefore, it is not provided by default.

Requirements

Participants should possess a solid understanding of the Linux command line and demonstrate proficiency in TCP/IP for government applications.

 21 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories