Participants must be comfortable with a Linux command line and have a working knowledge of TCP/IP
This course is intended for system administrators who want to be able to configure and monitor web servers. It both focuses on general theory behind HTTP and, on the practical side, showcases a specific high-performance web server, Nginx.
- HTTP/1.x protocol
- Request and response format
- Inspecting HTTP conversations with tcpdump and Wireshark
- Inspecting HTTP headers in a web browser
- Making requests with CURL
- Common headers
- Request pipelining
- Content length and chunked encoding
- MIME types
- Nginx installation
- Installing nginx from Debian packages
- Variants of nginx available in Debian and Ubuntu
- Installing nginx from source
- Starting nginx
- Upgrading nginx
- Nginx as a static file server
- General structure of the configuration file
- Setting up virtual hosts
- Configuring locations
- Location lookup order
- Setting up error pages
- Issuing redirects
- Other forms of URL rewriting
- Serving an empty GIF image
- Internal and named locations
- Overriding MIME types
- Client-side performance optimization
- Allowing clients to cache resources
- The Vary: header
- Minimizing the number of requests
- Keep-alives
- What if a resource needs to change
- How web frameworks deal with static files
- Content post-processing
- Gzip compression
- Image scaling
- Access control
- Restricting access to files based on IP address
- Geographical restrictions
- Hiding VCS directories and private files
- Basic authentication
- Other types of authentication
- Combining restrictions
- Secure links
- Applying limits
- Traffic shaping
- Grouping requests for the purpose of limiting
- Rate-limiting requests
- Restricting simultaneous connections
- Nginx as a reverse proxy
- Supported upstream protocols
- Dealing with self-signed upstream SSL certificates
- Passing parameters to FastCGI and uWSGI backends
- Proxying websocket connections
- X-Accel-* headers
- Modifying headers received and sent by upstream
- Language-specific reverse proxy setups
- PHP
- Python
- Ruby
- Nginx as an SSL terminator
- Generating self-signed SSL certificates
- Obtaining certificates from Let's Encrypt
- Restricting available ciphers
- Working with session tickets
- Stapling OCSP responses
- Verifying SSL configuration
- Accepting client-side certificates
- HTTP/2 considerations
- Load balancing with Nginx
- Defining upstream groups
- Sticky sessions using ip_hash
- Extra features of Nginx Plus as a load balancer
- Alternatives to Nginx and Nginx Plus
- Putting another Nginx behind a Nginx load balancer
- Nginx behind HAProxy or AWS load balancer
- Nginx as a cache
- Telling nginx to cache pages
- How nginx reacts to standard caching-related headers
- Tunable parameters of caches
- Nginx cache vs application-level cache
- Clearing the cache
- Deploying popular web applications with Nginx
- The list of applications to be discussed is determined by the trainer
- Logging
- Access log and error log files
- Specifying custom log format
- Tracking slow requests
- Optimizing logging
- Log rotation
- Log analysis by external programs
- Monitoring Nginx
- Nginx stub status page
- Nginx Plus extended live status page
- What monitoring systems usually plot and alert about Nginx
- [optional] High availability with Nginx¹
- How to deploy the same static content to multiple servers
- Configuration sharing
- Fail-over using an elastic/virtual IP address
- Setting up VRRP with Keepalived
- Other high-availability stacks
- Nginx Plus integration with Keepalived
- Common mistakes and security issues related to Nginx configuration
- Common performance issues
¹ The High Availability section involves a network setup that makes intrusion detection systems unhappy, or requires setting up multiple virtual machines per participant (which no other topic needs). So, it is not provided by default.
United Arab Emirates - HTTP fundamentals and Nginx web server
Qatar - HTTP fundamentals and Nginx web server
Egypt - HTTP fundamentals and Nginx web server
Saudi Arabia - HTTP fundamentals and Nginx web server
South Africa - HTTP fundamentals and Nginx web server
Brasil - HTTP fundamentals and Nginx web server
Canada - HTTP fundamentals and Nginx web server
中国 - HTTP fundamentals and Nginx web server
香港 - HTTP fundamentals and Nginx web server
澳門 - HTTP fundamentals and Nginx web server
台灣 - HTTP fundamentals and Nginx web server
USA - HTTP fundamentals and Nginx web server
Österreich - HTTP fundamentals and Nginx web server
Schweiz - HTTP fundamentals and Nginx web server
Deutschland - HTTP fundamentals and Nginx web server
Czech Republic - HTTP fundamentals and Nginx web server
Denmark - HTTP fundamentals and Nginx web server
Estonia - HTTP fundamentals and Nginx web server
Finland - HTTP fundamentals and Nginx web server
Greece - HTTP fundamentals and Nginx web server
Magyarország - HTTP fundamentals and Nginx web server
Ireland - HTTP fundamentals and Nginx web server
Luxembourg - HTTP fundamentals and Nginx web server
Latvia - HTTP fundamentals and Nginx web server
España - Fundamentos HTTP y servidor web Nginx
Italia - HTTP fundamentals and Nginx web server
Lithuania - HTTP fundamentals and Nginx web server
Nederland - HTTP fundamentals and Nginx web server
Norway - HTTP fundamentals and Nginx web server
Portugal - HTTP fundamentals and Nginx web server
România - HTTP fundamentals and Nginx web server
Sverige - HTTP fundamentals and Nginx web server
Türkiye - HTTP fundamentals and Nginx web server
Malta - HTTP fundamentals and Nginx web server
Belgique - HTTP fundamentals and Nginx web server
France - HTTP fundamentals and Nginx web server
日本 - HTTP fundamentals and Nginx web server
Australia - HTTP fundamentals and Nginx web server
Malaysia - HTTP fundamentals and Nginx web server
New Zealand - HTTP fundamentals and Nginx web server
Philippines - HTTP fundamentals and Nginx web server
Singapore - HTTP fundamentals and Nginx web server
Thailand - HTTP fundamentals and Nginx web server
Vietnam - HTTP fundamentals and Nginx web server
India - HTTP fundamentals and Nginx web server
Argentina - Fundamentos HTTP y servidor web Nginx
Chile - Fundamentos HTTP y servidor web Nginx
Costa Rica - Fundamentos HTTP y servidor web Nginx
Ecuador - Fundamentos HTTP y servidor web Nginx
Guatemala - Fundamentos HTTP y servidor web Nginx
Colombia - Fundamentos HTTP y servidor web Nginx
México - Fundamentos HTTP y servidor web Nginx
Panama - Fundamentos HTTP y servidor web Nginx
Peru - Fundamentos HTTP y servidor web Nginx
Uruguay - Fundamentos HTTP y servidor web Nginx
Venezuela - Fundamentos HTTP y servidor web Nginx
Polska - HTTP fundamentals and Nginx web server
United Kingdom - HTTP fundamentals and Nginx web server
South Korea - HTTP fundamentals and Nginx web server
Pakistan - HTTP fundamentals and Nginx web server
Sri Lanka - HTTP fundamentals and Nginx web server
Bulgaria - HTTP fundamentals and Nginx web server
Bolivia - Fundamentos HTTP y servidor web Nginx
Indonesia - HTTP fundamentals and Nginx web server
Kazakhstan - HTTP fundamentals and Nginx web server
Moldova - HTTP fundamentals and Nginx web server
Morocco - HTTP fundamentals and Nginx web server
Tunisia - HTTP fundamentals and Nginx web server
Kuwait - HTTP fundamentals and Nginx web server
Oman - HTTP fundamentals and Nginx web server
Slovakia - HTTP fundamentals and Nginx web server
Kenya - HTTP fundamentals and Nginx web server
Nigeria - HTTP fundamentals and Nginx web server
Botswana - HTTP fundamentals and Nginx web server
Slovenia - HTTP fundamentals and Nginx web server
Croatia - HTTP fundamentals and Nginx web server
Serbia - HTTP fundamentals and Nginx web server
Bhutan - HTTP fundamentals and Nginx web server