SlideShare a Scribd company logo
Dynamic SSL Certificates and Other
New Features in NGINX Plus R18
and NGINX Open Source
Faisal Memon
Software Engineer, NGINX
Formerly:
• Product Marketing Manager, NGINX
• Sr. Technical Marketing Engineer, Riverbed
• Software Engineer, Cisco
Interests:
• Surfing
• Yoga
• Raspberry Pi tinkering
• Trying to figure out the real estate market
Who am I?
NGINX + F5: Complementary Approaches
Open Source-Driven
375M websites powered worldwide
66% of the 10,000 busiest sites
90M downloads per year
Enterprise-Driven
25,000 customers worldwide
49 of the Fortune 50
10 of the world’s top 10 brands
Who Creates NGINX?
4
5
What is NGINX?
Internet
Web Server
Serve content from disk
Reverse Proxy
FastCGI, uWSGI, gRPC…
Load Balancer
Caching, SSL termination…
HTTP traffic
- Basic load balancer
- Content Cache
- Web Server
- Reverse Proxy
- SSL termination
- Rate limiting
- Basic authentication
- 7 metrics
NGINX Open Source NGINX Plus
+ Advanced load balancer
+ Health checks
+ Session persistence
+ Least time alg
+ Cache purging
+ HA/Clustering
+ JWT Authentication
+ OpenID Connect SSO
+ NGINX Plus API
+ Dynamic modules
+ 90+ metrics
Previously on…
• TLS 1.3 support
• Two Stage Rate Limiting
• Easier OpenID Connect Configuration *
• 2x faster ModSecurity Performance
• NGINX Ingress Controller for Kubernetes 1.4.0
* NGINX Plus Exclusive feature
7
Watch On Demand:
nginx.com/resources/webinars/tls-1-3-new-features-nginx-plus-r17-nginx-open-source/
Agenda
• Dynamic SSL Certificates
• OpenID Connect Enhancements
• Listen Port Ranges, FTP Proxy Support
• Key-Value Definition in the Configuration
• Greater Flexibility for Active Health Checks
• NGINX JavaScript Module and other updates
• Demo
• Summary and Q&A
Standard SSL Configuration
server {
listen 443 ssl;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
• Manually specify each certificate and key to be
loaded from disk
• If you have a 1,000+ certificates:
• Need to specify 1,000+ cert/key pairs
• Long load and reload times
• High memory consumption during reload
• Adding new site means updating config and reload
SSL Configuration using SNI
server {
listen 443 ssl;
ssl_certificate $ssl_server_name.crt;
ssl_certificate_key $ssl_server_name.key;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
• $ssl_server_name holds hostname
requested through SNI
• Files will be loaded on demand
• Single configuration for all SSL-enabled sites
• To create a new site, simply upload the
appropriately named cert/key pair, no reloads
• Up to 30% performance penalty to load
certificate from disk. Uses OS file cache to
improve performance.
SSL Configuration using Key-Value Store
keyval_zone zone=ssl_crt:10m;
keyval $ssl_server_name $crt_pem zone=ssl_crt;
keyval_zone zone=ssl_key:10m;
keyval $ssl_server_name $key_pem zone=ssl_key;
server {
listen 443 ssl;
ssl_certificate data:$crt_pem;
ssl_certificate_key data:$key_pem;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
• data: means the following variable holds the
certificate or key in memory.
• $crt_pem and $key_pem are looked up
from the Key-Value Store using
$ssl_server_name
• Key-Value Store can be programmed through
the NGINX Plus API for automated provisioning
• Ideal for short-lived certificates or integrations
with issuers such as Let’s Encrypt and
Hashicorp Vault.
* NGINX Plus exclusive
Agenda
• Dynamic SSL Certificates
• OpenID Connect Enhancements
• Listen Port Ranges, FTP Proxy Support
• Key-Value Definition in the Configuration
• Greater Flexibility for Active Health Checks
• NGINX JavaScript Module and other updates
• Demo
• Summary and Q&A
NGINX Plus JWT Authentication
Support timeline:
• R10 -- Initial support for native JWT authentication
added
• R12 -- Support for custom fields
• R14 -- Support for nested claims
• R15 -- Support for OpenID Connect SSO. Link to
Okta, OneLogin, PingIdentity, etc.
• R17 -- Support for fetching JWK from URL
• R18 – Support for opaque session tokens, refresh
tokens, and a logout URL for OpenID ConnectJWTAuthentication and OpenID Connect SSO are
exclusive to NGINX Plus
New OpenID Connect Features
• Opaque Session Tokens – Can now authenticate clients with opaque session tokens in the
form of a browser cookie. Opaque tokens contain no personally identifiable information about
the user.
• Refresh Tokens – New support for refresh tokens so that expired ID tokens are seamlessly
refreshed. NGINX Plus stores the refresh token in the key-value store and associates it with
the opaque session token. When the ID token expires, NGINX Plus sends the refresh token to
the authorization server. If the session is still valid, the authorization server issues a new ID
token.
• Logout URL -- When logged-in users visit the /logout URI, their ID and refresh tokens
are deleted from the key-value store, and they must reauthenticate when making a future
request.
Agenda
• Dynamic SSL Certificates
• OpenID Connect Enhancements
• Listen Port Ranges, FTP Proxy Support
• Key-Value Definition in the Configuration
• Greater Flexibility for Active Health Checks
• NGINX JavaScript Module and other updates
• Demo
• Summary and Q&A
Listen Port Ranges and FTP Proxying
server {
listen 21; # FTP control port
listen 40000-45000; # Data port range
proxy_pass <FTP-server>:$server_port;
}
• Previously could only specific a single port per
listen directive
• Multiple ports required multiple listen
directives
• Now can specify a range of ports
• Passive FTP opens up data port amongst a
large range of ports
Agenda
• Dynamic SSL Certificates
• OpenID Connect Enhancements
• Listen Port Ranges, FTP Proxy Support
• Key-Value Definition in the Configuration
• Greater Flexibility for Active Health Checks
• NGINX JavaScript Module and other updates
• Demo
• Summary and Q&A
Key-Value Definition in Configuration
keyval_zone zone=recents:10m timeout=2m;
keyval $remote_addr $last_uri zone=recents;
server {
listen 80;
location / {
set $last_uri $uri;
proxy_pass http://my_backend;
}
}
• Previously only way to update the Key-Value
Store was with NGINX Plus API
• Now can be updated by using the set directive
• $last_uri holds key-value entry with last
URI accesses by IP address
• set over writes with last URI. If no entry
present, it creates it
* NGINX Plus exclusive
$ curl http://localhost:8080/api/4/http/keyvals/recents
{
"10.19.245.68": "/blog/nginx-plus-r18-released/",
"172.16.80.227": "/products/nginx/",
"10.219.110.168": "/blog/nginx-unit-1-8-0-now-available”
}
Agenda
• Dynamic SSL Certificates
• OpenID Connect Enhancements
• Listen Port Ranges, FTP Proxy Support
• Key-Value Definition in the Configuration
• Greater Flexibility for Active Health Checks
• NGINX JavaScript Module and other updates
• Demo
• Summary and Q&A
New require Directive
map $upstream_http_cache_control $has_cache_control {
"" 0;
default 1;
}
map $upstream_http_expires $is_cacheable {
"" $has_cache_control;
default $upstream_http_expires;
}
match cacheable {
require $is_cacheable;
status 200;
}
server {
listen 80;
location / {
health_check uri=/ match=cacheable;
proxy_pass http://my_backend;
}
}
• New require directive requires all specified
variables to be non-zero for health check to
pass
• In this example we look for the presence of
Cache-Control headers
• Passed server has Cache-Control header
OR non-zero Expires header
* NGINX Plus exclusive
New proxy_session_drop Directive
server {
listen 12345;
proxy_pass my_tcp_backend;
health_check;
proxy_session_drop on;
}
• Previously when using NGINX to reverse proxy
TCP/UDP, backend server’s health status is
considered only for new connections.
• With new proxy_session_drop directive
enabled you can immediately close the
connection when the next packet is received
from, or sent to, the offline server.
* NGINX Plus exclusive
Agenda
• Dynamic SSL Certificates
• OpenID Connect Enhancements
• Listen Port Ranges, FTP Proxy Support
• Key-Value Definition in the Configuration
• Greater Flexibility for Active Health Checks
• NGINX JavaScript Module and other updates
• Demo
• Summary and Q&A
NGINX JavaScript updates
export default {maskIp}; // Only expose maskIp()
function maskIp(addr) { // Public (exported) function
return i2ipv4(fnv32a(addr));
}
• Previously, all JavaScript code had to reside in a
single file.
• With new import and export JavaScript
modules, code can be organized into multiple
function-specific files.
• New js_path directive sets additional
directories to search
import masker from 'mask_ip_module.js';
function maskRemoteAddress(r) {
return(masker.maskIp(r.remoteAddress));
}
js_include main.js;
js_path /etc/nginx/njs_modules;
js_set $remote_addr_masked maskRemoteAddress;
log_format masked '$remote_addr_masked ...
Additional features
• Clustering Enhancement – A single zone_sync configuration can now be used for all instances in a
cluster with the help of wildcard support in the listen directive. (NGINX Plus exclusive)
• New Variable -- $upstream_bytes_sent, contains number of bytes sent to an upstream server.
• NGINX Ingress Controller for Kubernetes – Can now be installed directly from our new Helm
repository, without having to download Helm chart source files.
• New/Updated Dynamic Modules –
◦ Brotli (New): A general-purpose, lossless data compression algorithm.
◦ OpenTracing (New): Ability to instrument NGINX Plus with OpenTracing-compliant requests for a range of distributed
tracing services, such as Datadog, Jaeger, and Zipkin.
◦ Lua (Updated): A scripting language for NGINX Plus, updated to use LuaJIT 2.1.
24
Agenda
• Dynamic SSL Certificates
• OpenID Connect Enhancements
• Listen Port Ranges, FTP Proxy Support
• Key-Value Definition in the Configuration
• Greater Flexibility for Active Health Checks
• NGINX JavaScript Module and other updates
• Demo
• Summary and Q&A
Agenda
• Dynamic SSL Certificates
• OpenID Connect Enhancements
• Listen Port Ranges, FTP Proxy Support
• Key-Value Definition in the Configuration
• Greater Flexibility for Active Health Checks
• NGINX JavaScript Module and other updates
• Demo
• Summary and Q&A
Summary
• SSL certificates can be dynamically loaded using SNI hostname
• SSL certificates can be added dynamically using the NGINX Plus API
• The listen directive now accepts port ranges, enabling FTP proxy support
• Key-Value pairs can now be set directly in NGINX Plus configuration
• New require directive for health checks can test the value of NGINX Plus variables
to fail/pass servers
• NGINX JavaScript module supports import and export for better code organization
Q & ATry NGINX Plus and NGINX WAF free for 30 days: nginx.com/free-trial-request

More Related Content

What's hot

Errant GTIDs breaking replication @ Percona Live 2019
Errant GTIDs breaking replication @ Percona Live 2019Errant GTIDs breaking replication @ Percona Live 2019
Errant GTIDs breaking replication @ Percona Live 2019
Dieter Adriaenssens
 
Redis persistence in practice
Redis persistence in practiceRedis persistence in practice
Redis persistence in practice
Eugene Fidelin
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Red Hat Developers
 
Apache Ambari: Managing Hadoop and YARN
Apache Ambari: Managing Hadoop and YARNApache Ambari: Managing Hadoop and YARN
Apache Ambari: Managing Hadoop and YARN
Hortonworks
 
How to build a Kubernetes networking solution from scratch
How to build a Kubernetes networking solution from scratchHow to build a Kubernetes networking solution from scratch
How to build a Kubernetes networking solution from scratch
All Things Open
 
Getting The Most Out Of Your Flash/SSDs
Getting The Most Out Of Your Flash/SSDsGetting The Most Out Of Your Flash/SSDs
Getting The Most Out Of Your Flash/SSDs
Aerospike, Inc.
 
Vault 101
Vault 101Vault 101
Vault 101
Hazzim Anaya
 
Vce vxrail-customer-presentation new
Vce vxrail-customer-presentation newVce vxrail-customer-presentation new
Vce vxrail-customer-presentation new
Jennifer Graham
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
Jurriaan Persyn
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
Dvir Volk
 
Everything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesEverything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in Kubernetes
The {code} Team
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Peng Xiao
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Simplilearn
 
Installing and Configuring NGINX Open Source
Installing and Configuring NGINX Open SourceInstalling and Configuring NGINX Open Source
Installing and Configuring NGINX Open Source
NGINX, Inc.
 
Introducing Vault
Introducing VaultIntroducing Vault
Introducing Vault
Ramit Surana
 
Vault
VaultVault
Zabbix Performance Tuning
Zabbix Performance TuningZabbix Performance Tuning
Zabbix Performance Tuning
Ricardo Santos
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
Claus Ibsen
 
OpenTelemetry 101 FTW
OpenTelemetry 101 FTWOpenTelemetry 101 FTW
OpenTelemetry 101 FTW
NGINX, Inc.
 
ProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQL
René Cannaò
 

What's hot (20)

Errant GTIDs breaking replication @ Percona Live 2019
Errant GTIDs breaking replication @ Percona Live 2019Errant GTIDs breaking replication @ Percona Live 2019
Errant GTIDs breaking replication @ Percona Live 2019
 
Redis persistence in practice
Redis persistence in practiceRedis persistence in practice
Redis persistence in practice
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Apache Ambari: Managing Hadoop and YARN
Apache Ambari: Managing Hadoop and YARNApache Ambari: Managing Hadoop and YARN
Apache Ambari: Managing Hadoop and YARN
 
How to build a Kubernetes networking solution from scratch
How to build a Kubernetes networking solution from scratchHow to build a Kubernetes networking solution from scratch
How to build a Kubernetes networking solution from scratch
 
Getting The Most Out Of Your Flash/SSDs
Getting The Most Out Of Your Flash/SSDsGetting The Most Out Of Your Flash/SSDs
Getting The Most Out Of Your Flash/SSDs
 
Vault 101
Vault 101Vault 101
Vault 101
 
Vce vxrail-customer-presentation new
Vce vxrail-customer-presentation newVce vxrail-customer-presentation new
Vce vxrail-customer-presentation new
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Everything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesEverything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in Kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
 
Installing and Configuring NGINX Open Source
Installing and Configuring NGINX Open SourceInstalling and Configuring NGINX Open Source
Installing and Configuring NGINX Open Source
 
Introducing Vault
Introducing VaultIntroducing Vault
Introducing Vault
 
Vault
VaultVault
Vault
 
Zabbix Performance Tuning
Zabbix Performance TuningZabbix Performance Tuning
Zabbix Performance Tuning
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
 
OpenTelemetry 101 FTW
OpenTelemetry 101 FTWOpenTelemetry 101 FTW
OpenTelemetry 101 FTW
 
ProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQL
 

Similar to Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX Open Source

NGINX Plus R18: What's new
NGINX Plus R18: What's newNGINX Plus R18: What's new
NGINX Plus R18: What's new
NGINX, Inc.
 
What's new in NGINX Plus R19
What's new in NGINX Plus R19What's new in NGINX Plus R19
What's new in NGINX Plus R19
NGINX, Inc.
 
What’s New in NGINX Plus R16?
What’s New in NGINX Plus R16?What’s New in NGINX Plus R16?
What’s New in NGINX Plus R16?
NGINX, Inc.
 
What’s New in NGINX Plus R15? - EMEA
What’s New in NGINX Plus R15? - EMEAWhat’s New in NGINX Plus R15? - EMEA
What’s New in NGINX Plus R15? - EMEA
NGINX, Inc.
 
What’s New in NGINX Plus R15?
What’s New in NGINX Plus R15?What’s New in NGINX Plus R15?
What’s New in NGINX Plus R15?
NGINX, Inc.
 
NGINX Plus R20 Webinar EMEA
NGINX Plus R20 Webinar EMEANGINX Plus R20 Webinar EMEA
NGINX Plus R20 Webinar EMEA
NGINX, Inc.
 
NGINX Plus R20 Webinar
NGINX Plus R20 WebinarNGINX Plus R20 Webinar
NGINX Plus R20 Webinar
NGINX, Inc.
 
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open SourceTLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source
NGINX, Inc.
 
What's New in NGINX Plus R10?
What's New in NGINX Plus R10?What's New in NGINX Plus R10?
What's New in NGINX Plus R10?
NGINX, Inc.
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
NGINX, Inc.
 
What’s New in NGINX Plus R16? – EMEA
What’s New in NGINX Plus R16? – EMEAWhat’s New in NGINX Plus R16? – EMEA
What’s New in NGINX Plus R16? – EMEA
NGINX, Inc.
 
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source EMEA
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source EMEATLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source EMEA
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source EMEA
NGINX, Inc.
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX, Inc.
 
NGINX: Basics and Best Practices
NGINX: Basics and Best PracticesNGINX: Basics and Best Practices
NGINX: Basics and Best Practices
NGINX, Inc.
 
NGINX Plus R19 : EMEA
NGINX Plus R19 : EMEANGINX Plus R19 : EMEA
NGINX Plus R19 : EMEA
NGINX, Inc.
 
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
NGINX, Inc.
 
Cloud Platform Symantec Meetup Nov 2014
Cloud Platform Symantec Meetup Nov 2014Cloud Platform Symantec Meetup Nov 2014
Cloud Platform Symantec Meetup Nov 2014
Miguel Zuniga
 
Nginx Deep Dive Kubernetes Ingress
Nginx Deep Dive Kubernetes IngressNginx Deep Dive Kubernetes Ingress
Nginx Deep Dive Kubernetes Ingress
Knoldus Inc.
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEA
NGINX, Inc.
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
Kevin Jones
 

Similar to Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX Open Source (20)

NGINX Plus R18: What's new
NGINX Plus R18: What's newNGINX Plus R18: What's new
NGINX Plus R18: What's new
 
What's new in NGINX Plus R19
What's new in NGINX Plus R19What's new in NGINX Plus R19
What's new in NGINX Plus R19
 
What’s New in NGINX Plus R16?
What’s New in NGINX Plus R16?What’s New in NGINX Plus R16?
What’s New in NGINX Plus R16?
 
What’s New in NGINX Plus R15? - EMEA
What’s New in NGINX Plus R15? - EMEAWhat’s New in NGINX Plus R15? - EMEA
What’s New in NGINX Plus R15? - EMEA
 
What’s New in NGINX Plus R15?
What’s New in NGINX Plus R15?What’s New in NGINX Plus R15?
What’s New in NGINX Plus R15?
 
NGINX Plus R20 Webinar EMEA
NGINX Plus R20 Webinar EMEANGINX Plus R20 Webinar EMEA
NGINX Plus R20 Webinar EMEA
 
NGINX Plus R20 Webinar
NGINX Plus R20 WebinarNGINX Plus R20 Webinar
NGINX Plus R20 Webinar
 
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open SourceTLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source
 
What's New in NGINX Plus R10?
What's New in NGINX Plus R10?What's New in NGINX Plus R10?
What's New in NGINX Plus R10?
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
 
What’s New in NGINX Plus R16? – EMEA
What’s New in NGINX Plus R16? – EMEAWhat’s New in NGINX Plus R16? – EMEA
What’s New in NGINX Plus R16? – EMEA
 
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source EMEA
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source EMEATLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source EMEA
TLS 1.3 and Other New Features in NGINX Plus R17 and NGINX Open Source EMEA
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA Broadcast
 
NGINX: Basics and Best Practices
NGINX: Basics and Best PracticesNGINX: Basics and Best Practices
NGINX: Basics and Best Practices
 
NGINX Plus R19 : EMEA
NGINX Plus R19 : EMEANGINX Plus R19 : EMEA
NGINX Plus R19 : EMEA
 
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
 
Cloud Platform Symantec Meetup Nov 2014
Cloud Platform Symantec Meetup Nov 2014Cloud Platform Symantec Meetup Nov 2014
Cloud Platform Symantec Meetup Nov 2014
 
Nginx Deep Dive Kubernetes Ingress
Nginx Deep Dive Kubernetes IngressNginx Deep Dive Kubernetes Ingress
Nginx Deep Dive Kubernetes Ingress
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEA
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
 

More from NGINX, Inc.

【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
NGINX, Inc.
 
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
NGINX, Inc.
 
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
NGINX, Inc.
 
Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3
NGINX, Inc.
 
Managing Kubernetes Cost and Performance with NGINX & Kubecost
Managing Kubernetes Cost and Performance with NGINX & KubecostManaging Kubernetes Cost and Performance with NGINX & Kubecost
Managing Kubernetes Cost and Performance with NGINX & Kubecost
NGINX, Inc.
 
Manage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with ObservabilityManage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with Observability
NGINX, Inc.
 
Accelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with AutomationAccelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with Automation
NGINX, Inc.
 
Unit 2: Microservices Secrets Management 101
Unit 2: Microservices Secrets Management 101Unit 2: Microservices Secrets Management 101
Unit 2: Microservices Secrets Management 101
NGINX, Inc.
 
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesUnit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
NGINX, Inc.
 
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX, Inc.
 
Easily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINXEasily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINX
NGINX, Inc.
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINX, Inc.
 
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINXKeep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
NGINX, Inc.
 
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
NGINX, Inc.
 
Protecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINXProtecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINX
NGINX, Inc.
 
NGINX Kubernetes API
NGINX Kubernetes APINGINX Kubernetes API
NGINX Kubernetes API
NGINX, Inc.
 
Successfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINXSuccessfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINX
NGINX, Inc.
 
Shift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINXShift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINX
NGINX, Inc.
 
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptxHow to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
NGINX, Inc.
 
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティKubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティ
NGINX, Inc.
 

More from NGINX, Inc. (20)

【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
 
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
 
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
 
Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3
 
Managing Kubernetes Cost and Performance with NGINX & Kubecost
Managing Kubernetes Cost and Performance with NGINX & KubecostManaging Kubernetes Cost and Performance with NGINX & Kubecost
Managing Kubernetes Cost and Performance with NGINX & Kubecost
 
Manage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with ObservabilityManage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with Observability
 
Accelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with AutomationAccelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with Automation
 
Unit 2: Microservices Secrets Management 101
Unit 2: Microservices Secrets Management 101Unit 2: Microservices Secrets Management 101
Unit 2: Microservices Secrets Management 101
 
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesUnit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
 
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
 
Easily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINXEasily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINX
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
 
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINXKeep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
 
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
 
Protecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINXProtecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINX
 
NGINX Kubernetes API
NGINX Kubernetes APINGINX Kubernetes API
NGINX Kubernetes API
 
Successfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINXSuccessfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINX
 
Shift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINXShift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINX
 
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptxHow to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
 
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティKubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティ
 

Recently uploaded

The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 

Recently uploaded (20)

The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Artificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic WarfareArtificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic Warfare
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 

Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX Open Source

  • 1. Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX Open Source
  • 2. Faisal Memon Software Engineer, NGINX Formerly: • Product Marketing Manager, NGINX • Sr. Technical Marketing Engineer, Riverbed • Software Engineer, Cisco Interests: • Surfing • Yoga • Raspberry Pi tinkering • Trying to figure out the real estate market Who am I?
  • 3. NGINX + F5: Complementary Approaches Open Source-Driven 375M websites powered worldwide 66% of the 10,000 busiest sites 90M downloads per year Enterprise-Driven 25,000 customers worldwide 49 of the Fortune 50 10 of the world’s top 10 brands
  • 5. 5
  • 6. What is NGINX? Internet Web Server Serve content from disk Reverse Proxy FastCGI, uWSGI, gRPC… Load Balancer Caching, SSL termination… HTTP traffic - Basic load balancer - Content Cache - Web Server - Reverse Proxy - SSL termination - Rate limiting - Basic authentication - 7 metrics NGINX Open Source NGINX Plus + Advanced load balancer + Health checks + Session persistence + Least time alg + Cache purging + HA/Clustering + JWT Authentication + OpenID Connect SSO + NGINX Plus API + Dynamic modules + 90+ metrics
  • 7. Previously on… • TLS 1.3 support • Two Stage Rate Limiting • Easier OpenID Connect Configuration * • 2x faster ModSecurity Performance • NGINX Ingress Controller for Kubernetes 1.4.0 * NGINX Plus Exclusive feature 7 Watch On Demand: nginx.com/resources/webinars/tls-1-3-new-features-nginx-plus-r17-nginx-open-source/
  • 8. Agenda • Dynamic SSL Certificates • OpenID Connect Enhancements • Listen Port Ranges, FTP Proxy Support • Key-Value Definition in the Configuration • Greater Flexibility for Active Health Checks • NGINX JavaScript Module and other updates • Demo • Summary and Q&A
  • 9. Standard SSL Configuration server { listen 443 ssl; ssl_certificate cert.crt; ssl_certificate_key cert.key; location / { root /usr/share/nginx/html; index index.html index.htm; } } • Manually specify each certificate and key to be loaded from disk • If you have a 1,000+ certificates: • Need to specify 1,000+ cert/key pairs • Long load and reload times • High memory consumption during reload • Adding new site means updating config and reload
  • 10. SSL Configuration using SNI server { listen 443 ssl; ssl_certificate $ssl_server_name.crt; ssl_certificate_key $ssl_server_name.key; location / { root /usr/share/nginx/html; index index.html index.htm; } } • $ssl_server_name holds hostname requested through SNI • Files will be loaded on demand • Single configuration for all SSL-enabled sites • To create a new site, simply upload the appropriately named cert/key pair, no reloads • Up to 30% performance penalty to load certificate from disk. Uses OS file cache to improve performance.
  • 11. SSL Configuration using Key-Value Store keyval_zone zone=ssl_crt:10m; keyval $ssl_server_name $crt_pem zone=ssl_crt; keyval_zone zone=ssl_key:10m; keyval $ssl_server_name $key_pem zone=ssl_key; server { listen 443 ssl; ssl_certificate data:$crt_pem; ssl_certificate_key data:$key_pem; location / { root /usr/share/nginx/html; index index.html index.htm; } } • data: means the following variable holds the certificate or key in memory. • $crt_pem and $key_pem are looked up from the Key-Value Store using $ssl_server_name • Key-Value Store can be programmed through the NGINX Plus API for automated provisioning • Ideal for short-lived certificates or integrations with issuers such as Let’s Encrypt and Hashicorp Vault. * NGINX Plus exclusive
  • 12. Agenda • Dynamic SSL Certificates • OpenID Connect Enhancements • Listen Port Ranges, FTP Proxy Support • Key-Value Definition in the Configuration • Greater Flexibility for Active Health Checks • NGINX JavaScript Module and other updates • Demo • Summary and Q&A
  • 13. NGINX Plus JWT Authentication Support timeline: • R10 -- Initial support for native JWT authentication added • R12 -- Support for custom fields • R14 -- Support for nested claims • R15 -- Support for OpenID Connect SSO. Link to Okta, OneLogin, PingIdentity, etc. • R17 -- Support for fetching JWK from URL • R18 – Support for opaque session tokens, refresh tokens, and a logout URL for OpenID ConnectJWTAuthentication and OpenID Connect SSO are exclusive to NGINX Plus
  • 14. New OpenID Connect Features • Opaque Session Tokens – Can now authenticate clients with opaque session tokens in the form of a browser cookie. Opaque tokens contain no personally identifiable information about the user. • Refresh Tokens – New support for refresh tokens so that expired ID tokens are seamlessly refreshed. NGINX Plus stores the refresh token in the key-value store and associates it with the opaque session token. When the ID token expires, NGINX Plus sends the refresh token to the authorization server. If the session is still valid, the authorization server issues a new ID token. • Logout URL -- When logged-in users visit the /logout URI, their ID and refresh tokens are deleted from the key-value store, and they must reauthenticate when making a future request.
  • 15. Agenda • Dynamic SSL Certificates • OpenID Connect Enhancements • Listen Port Ranges, FTP Proxy Support • Key-Value Definition in the Configuration • Greater Flexibility for Active Health Checks • NGINX JavaScript Module and other updates • Demo • Summary and Q&A
  • 16. Listen Port Ranges and FTP Proxying server { listen 21; # FTP control port listen 40000-45000; # Data port range proxy_pass <FTP-server>:$server_port; } • Previously could only specific a single port per listen directive • Multiple ports required multiple listen directives • Now can specify a range of ports • Passive FTP opens up data port amongst a large range of ports
  • 17. Agenda • Dynamic SSL Certificates • OpenID Connect Enhancements • Listen Port Ranges, FTP Proxy Support • Key-Value Definition in the Configuration • Greater Flexibility for Active Health Checks • NGINX JavaScript Module and other updates • Demo • Summary and Q&A
  • 18. Key-Value Definition in Configuration keyval_zone zone=recents:10m timeout=2m; keyval $remote_addr $last_uri zone=recents; server { listen 80; location / { set $last_uri $uri; proxy_pass http://my_backend; } } • Previously only way to update the Key-Value Store was with NGINX Plus API • Now can be updated by using the set directive • $last_uri holds key-value entry with last URI accesses by IP address • set over writes with last URI. If no entry present, it creates it * NGINX Plus exclusive $ curl http://localhost:8080/api/4/http/keyvals/recents { "10.19.245.68": "/blog/nginx-plus-r18-released/", "172.16.80.227": "/products/nginx/", "10.219.110.168": "/blog/nginx-unit-1-8-0-now-available” }
  • 19. Agenda • Dynamic SSL Certificates • OpenID Connect Enhancements • Listen Port Ranges, FTP Proxy Support • Key-Value Definition in the Configuration • Greater Flexibility for Active Health Checks • NGINX JavaScript Module and other updates • Demo • Summary and Q&A
  • 20. New require Directive map $upstream_http_cache_control $has_cache_control { "" 0; default 1; } map $upstream_http_expires $is_cacheable { "" $has_cache_control; default $upstream_http_expires; } match cacheable { require $is_cacheable; status 200; } server { listen 80; location / { health_check uri=/ match=cacheable; proxy_pass http://my_backend; } } • New require directive requires all specified variables to be non-zero for health check to pass • In this example we look for the presence of Cache-Control headers • Passed server has Cache-Control header OR non-zero Expires header * NGINX Plus exclusive
  • 21. New proxy_session_drop Directive server { listen 12345; proxy_pass my_tcp_backend; health_check; proxy_session_drop on; } • Previously when using NGINX to reverse proxy TCP/UDP, backend server’s health status is considered only for new connections. • With new proxy_session_drop directive enabled you can immediately close the connection when the next packet is received from, or sent to, the offline server. * NGINX Plus exclusive
  • 22. Agenda • Dynamic SSL Certificates • OpenID Connect Enhancements • Listen Port Ranges, FTP Proxy Support • Key-Value Definition in the Configuration • Greater Flexibility for Active Health Checks • NGINX JavaScript Module and other updates • Demo • Summary and Q&A
  • 23. NGINX JavaScript updates export default {maskIp}; // Only expose maskIp() function maskIp(addr) { // Public (exported) function return i2ipv4(fnv32a(addr)); } • Previously, all JavaScript code had to reside in a single file. • With new import and export JavaScript modules, code can be organized into multiple function-specific files. • New js_path directive sets additional directories to search import masker from 'mask_ip_module.js'; function maskRemoteAddress(r) { return(masker.maskIp(r.remoteAddress)); } js_include main.js; js_path /etc/nginx/njs_modules; js_set $remote_addr_masked maskRemoteAddress; log_format masked '$remote_addr_masked ...
  • 24. Additional features • Clustering Enhancement – A single zone_sync configuration can now be used for all instances in a cluster with the help of wildcard support in the listen directive. (NGINX Plus exclusive) • New Variable -- $upstream_bytes_sent, contains number of bytes sent to an upstream server. • NGINX Ingress Controller for Kubernetes – Can now be installed directly from our new Helm repository, without having to download Helm chart source files. • New/Updated Dynamic Modules – ◦ Brotli (New): A general-purpose, lossless data compression algorithm. ◦ OpenTracing (New): Ability to instrument NGINX Plus with OpenTracing-compliant requests for a range of distributed tracing services, such as Datadog, Jaeger, and Zipkin. ◦ Lua (Updated): A scripting language for NGINX Plus, updated to use LuaJIT 2.1. 24
  • 25. Agenda • Dynamic SSL Certificates • OpenID Connect Enhancements • Listen Port Ranges, FTP Proxy Support • Key-Value Definition in the Configuration • Greater Flexibility for Active Health Checks • NGINX JavaScript Module and other updates • Demo • Summary and Q&A
  • 26. Agenda • Dynamic SSL Certificates • OpenID Connect Enhancements • Listen Port Ranges, FTP Proxy Support • Key-Value Definition in the Configuration • Greater Flexibility for Active Health Checks • NGINX JavaScript Module and other updates • Demo • Summary and Q&A
  • 27. Summary • SSL certificates can be dynamically loaded using SNI hostname • SSL certificates can be added dynamically using the NGINX Plus API • The listen directive now accepts port ranges, enabling FTP proxy support • Key-Value pairs can now be set directly in NGINX Plus configuration • New require directive for health checks can test the value of NGINX Plus variables to fail/pass servers • NGINX JavaScript module supports import and export for better code organization
  • 28. Q & ATry NGINX Plus and NGINX WAF free for 30 days: nginx.com/free-trial-request