Mastering HTTP Fundamentals and Nginx Web Server Administration

Inquire now

The HTTP Fundamentals and Nginx Web Server Training Course is designed to provide participants with a comprehensive understanding of the Hypertext Transfer Protocol (HTTP) and practical skills in Nginx web server administration. Through a combination of lectures, hands-on exercises, and real-world examples, participants will learn the foundational concepts of HTTP, including request/response cycle, status codes, headers, and methods, as well as the setup, configuration, and optimization of Nginx web servers. By the end of the course, participants will be equipped to design, deploy, and manage high-performance web server environments using Nginx.

 

Duration 5 days – 35 hrs

 

Prerequisite

 

  • Basic understanding of web development concepts.
  • Familiarity with JavaScript programming language.
  • Comfortable using the command line interface.
  • Access to a computer with a modern web browser.
  • Willingness to learn and explore automated testing principles

 

Objectives

 

  • Gain proficiency in creating their first Cypress project, including installation, setting up project structure, and running Cypress GUI.
  • Understand the application.visit() command, basic configuration options, and effectively utilize the browser for test automation.
  • Learn various methods of selecting elements on a page and strategies for using selectors effectively.
  • Participants will write their first test, covering basic scenario automation, debugging techniques, and interpreting error messages effectively.
  • Understand best practices for writing assertions in end-to-end tests to ensure reliable and accurate test results.
  • Learn effective command-chaining techniques and understand how information is passed through commands to enhance test readability and maintainability.
  • Understand how to test dynamic pages using built-in retryability features to handle constantly re-rendering sites effectively.
  • Gain proficiency in handling data within tests, including saving, aliasing, and passing information throughout the test flow for better test management.
  • Participants will learn to create custom commands to abstract test logic into separate commands, thus expanding the Cypress library with their reusable commands.
  • Understand how to intercept network requests using the cy. intercept() command to simulate edge cases and ensure comprehensive test coverage.
  • Gain proficiency in API testing principles, including testing data from APIs and using cy. request() to prepare and handle test data effectively.
  • Learn how to install useful plugins to solve common testing problems from the open-source community and enhance test automation capabilities.
  • Understand how to handle authentication flows, including caching a logged-in state of the browser and managing backend authentication securely.
  • Learn to run Node.js scripts in tests, switch between different environments, test in headless mode, and set up a simple CI workflow for continuous integration.

 

Audience

 

  • Quality Assurance Engineers: Professionals responsible for ensuring the quality of software products through testing and automation, seeking to enhance their skills in automated testing using Cypress.
  • Test Automation Engineers: Individuals specializing in test automation, interested in learning Cypress as a tool for automating end-to-end testing of web applications.
  • Software Developers: Developers interested in incorporating automated testing into their workflow, particularly those involved in frontend development and interested in testing web applications using Cypress.
  • DevOps Engineers: Engineers responsible for implementing continuous integration and continuous deployment (CI/CD) pipelines, interested in incorporating Cypress tests into their automation workflows.
  • Software Testers: Testing professionals at various levels of experience who want to learn Cypress to enhance their testing capabilities and improve the efficiency of their testing processes.
  • QA Managers: Managers overseeing quality assurance processes and teams, interested in understanding Cypress to make informed decisions about test automation strategies and tooling.
  • Web Developers: Frontend developers interested in understanding how to write automated tests for their web applications using Cypress to ensure code quality and prevent regressions.
  • IT Professionals: Professionals from various IT backgrounds interested in learning about modern test automation tools and techniques, particularly those involved in web application development and testing.
  • Anyone Interested in Automated Testing: Individuals from different domains who want to learn about automated testing and Cypress as a tool for creating and running automated tests for web applications.

 

Course Outline

 

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

 

Inquire now

Best selling courses

BUSINESS / FINANCE / BLOCKCHAIN / FINTECH

Establishing Effective Metrics: KPIs and Dashboard

DATA SCIENCE

R Programming

ARTIFICIAL INTELLIGENCE / MACHINE LEARNING / DEEP LEARNING

Artificial Intelligence Fundamentals

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.