Introduction to NGINX
What you'll learn
- Layer 7 Load Balancing between services
- Layer 4 Load Balancing between services
- Setup NGINX as a Web Server
- TLS Passthrough vs TLS Termination
- Block Undesired Requests and Re-route requests to different services
- Enable HTTPS with letsEncrypt
- Enable HTTP/2 with NGINX
- Enable TLS 1.3 with NGINX
- NGINX Timeouts
- Scaling WebSockets with NGINX
- Load Balancing WebSockets with NGINX
Requirements
- Basic understanding of networking and coding
- Any computer (Windows, Mac or Linux)
Description
NGINX is an open-source web server written in C and can also be used as a reverse proxy and a load balancer. This class Is an introduction to NGINX, by the end of this class you will be able to understand the fundamentals of NGINX and spin up your own instance and even secure it with a legitimate certificate.
Here are the topics that I will discuss:
What is NGINX?
NGINX Use Cases
Layer 4 and Layer 7 Proxying in Nginx
NGINX Timoouts
Example
Install Nginx (mac)
Nginx as a Web Server
Static content
Regular expression in NGINX
proxy_pass
Nginx as a Layer 7 Proxy
Proxy to 4 backend NodeJS services (docker)
IP_Hash load balancing
Split load to multiple backends (app1/app2)
Block certain requests (/admin)
NGINX as a Layer 4 Proxy
Create DNS record
Enable HTTPS on NGINX (lets encrypt)
Enable TLS 1.3 on NGINX
Enable HTTP/2 on NGINX
A small blurb about NGINX
NGINX is one of a handful of servers written to address the C10K problem. Unlike traditional servers, NGINX doesn’t rely on threads to handle requests. Instead it uses a much more scalable event-driven (asynchronous) architecture. This architecture uses small, but more importantly, predictable amounts of memory under load. Even if you don’t expect to handle thousands of simultaneous requests, you can still benefit from NGINX’s high-performance and small memory footprint. NGINX scales in all directions: from the smallest VPS all the way up to large clusters of servers.
Who this course is for:
- Engineers who want to deploy Web Servers
- Engineers who want to understand how to enable TLS and HTTPS
- Engineers interested in Proxy technology, reverse proxy and load balancing
- Engineers who want to use NGINX to scale HTTP and WebSockets applications
Featured review
Instructor
Early in my career 20 years ago I built database applications without fully grasping their inner mechanics. Facing performance issues, racing conditions bug and even corruption often left me helpless.
I resolved to truly understand the workings of database systems, ensuring I knew every query from my app and its execution in the db and what I choose to make as a transaction and what I make into an atomic query.
From that day I have fascinated by pursuing deep understanding of what is happening behind the scenes in software. If you follow me here you would see deep dive posts about backend, databases and operating systems.
If you enjoy pursing the internals, I think you may like my courses.