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
My name is Hussein and I’m a software engineer. My software journey started around 1998 when my uncle gave me a book titled `Learn Programming and Visual Basic 2.0`. That book made me realized that I enjoy the craft of building software. Using every medium available I would talk about software in a form of bulletin boards, blogs, books, courses, podcasts, and videos.
These days I run a YouTube channel where I cover software engineering topics with a focus on backend tech. I discuss databases, proxies, security, networking, protocols, and programming. I also cover recent news and current events in the field of software.
I specialize in the field of geographic information systems (or GIS for short). Since 2005, I helped many organizations in the Middle East implement Esri GIS by designing and building mapping apps to streamline their workflows. I wrote five books on Esri’s technologies and I've been a principal engineer there since 2015.
Using software to solve interesting problems is one of the fascinating things I really enjoy. Feel free to contact me on my social media channels to ask questions or share interesting problems. I would love to hear it!