Preface |
|
ix | |
|
|
1 | (8) |
|
|
1 | (1) |
|
1.1 Installing NGINX on Debian/Ubuntu |
|
|
1 | (1) |
|
1.2 Installing NGINX on RedHat/CentOS |
|
|
2 | (1) |
|
1.3 Installing NGINX Plus |
|
|
3 | (1) |
|
1.4 Verifying Your Installation |
|
|
3 | (1) |
|
1.5 Key Files, Directories, and Commands |
|
|
4 | (2) |
|
1.6 Serving Static Content |
|
|
6 | (1) |
|
|
7 | (2) |
|
2 High-Performance Load Balancing |
|
|
9 | (16) |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
11 | (2) |
|
|
13 | (1) |
|
2.4 Load-Balancing Methods |
|
|
14 | (2) |
|
2.5 Sticky Cookie with NGINX Plus |
|
|
16 | (1) |
|
2.6 Sticky Learn with NGINX Plus |
|
|
17 | (1) |
|
2.7 Sticky Routing with NGINX Plus |
|
|
18 | (1) |
|
2.8 Connection Draining with NGINX Plus |
|
|
19 | (1) |
|
2.9 Passive Health Checks |
|
|
20 | (1) |
|
2.10 Active Health Checks with NGINX Plus |
|
|
21 | (2) |
|
2.11 Slow Start with NGINX Plus |
|
|
23 | (2) |
|
|
25 | (10) |
|
|
25 | (1) |
|
|
25 | (2) |
|
3.2 Using the GeoIP Module and Database |
|
|
27 | (2) |
|
3.3 Restricting Access Based on Country |
|
|
29 | (1) |
|
3.4 Finding the Original Client |
|
|
30 | (1) |
|
|
31 | (1) |
|
|
32 | (2) |
|
|
34 | (1) |
|
4 Massively Scalable Content Caching |
|
|
35 | (8) |
|
|
35 | (1) |
|
|
35 | (1) |
|
|
36 | (1) |
|
|
37 | (1) |
|
|
38 | (1) |
|
|
39 | (1) |
|
4.6 Cache Purging with NGINX Plus |
|
|
39 | (1) |
|
|
40 | (3) |
|
5 Programmability and Automation |
|
|
43 | (16) |
|
|
43 | (1) |
|
|
43 | (4) |
|
5.2 Using the Key-Value Store with NGINX Plus |
|
|
47 | (2) |
|
5.3 Using the NJS Module to Expose JavaScript Functionality Within NGINX |
|
|
49 | (3) |
|
5.4 Extending NGINX with a Common Programming Language |
|
|
52 | (2) |
|
|
54 | (1) |
|
5.6 Installing with Ansible |
|
|
55 | (2) |
|
5.7 Automating Configurations with Consul Templating |
|
|
57 | (2) |
|
|
59 | (10) |
|
|
59 | (1) |
|
6.1 HTTP Basic Authentication |
|
|
59 | (2) |
|
6.2 Authentication Sub requests |
|
|
61 | (1) |
|
6.3 Validating JWTs with NGINX Plus |
|
|
62 | (1) |
|
6.4 Creating JSON Web Keys |
|
|
63 | (1) |
|
6.5 Validate JSON Web Tokens with NGINX Plus |
|
|
64 | (1) |
|
6.6 Automatically Obtaining and Caching JSON Web Key Sets with NGINX Plus |
|
|
65 | (1) |
|
6.7 Authenticate Users via Existing OpenID Connect SSO with NGINX Plus |
|
|
66 | (3) |
|
|
69 | (20) |
|
|
69 | (1) |
|
7.1 Access Based on IP Address |
|
|
69 | (1) |
|
7.2 Allowing Cross-Origin Resource Sharing |
|
|
70 | (2) |
|
7.3 Client-Side Encryption |
|
|
72 | (1) |
|
7.4 Advanced Client-Side Encryption |
|
|
73 | (2) |
|
|
75 | (1) |
|
|
75 | (1) |
|
7.7 Generating a Secure Link with a Secret |
|
|
76 | (1) |
|
7.8 Securing a Location with an Expire Date |
|
|
77 | (1) |
|
7.9 Generating an Expiring Link |
|
|
78 | (2) |
|
|
80 | (1) |
|
7.11 Redirecting to HTTPS Where SSL/TLS Is Terminated Before NGINX |
|
|
80 | (1) |
|
7.12 HTTP Strict Transport Security |
|
|
81 | (1) |
|
7.13 Satisfying Any Number of Security Methods |
|
|
82 | (1) |
|
7.14 NGINX Plus Dynamic Application Layer DDoS Mitigation |
|
|
83 | (1) |
|
7.15 Installing and Configuring NGINX Plus with the NGINX App Protect WAF Module |
|
|
84 | (5) |
|
|
89 | (6) |
|
|
89 | (1) |
|
|
89 | (1) |
|
|
90 | (2) |
|
|
92 | (3) |
|
9 Sophisticated Media Streaming |
|
|
95 | (4) |
|
|
95 | (1) |
|
|
95 | (1) |
|
9.2 Streaming with HLS with NGINX Plus |
|
|
96 | (1) |
|
9.3 Streaming with HDS with NGINX Plus |
|
|
97 | (1) |
|
9.4 Bandwidth Limits with NGINX Plus |
|
|
98 | (1) |
|
|
99 | (14) |
|
|
99 | (1) |
|
10.1 Auto-Provisioning on AWS |
|
|
99 | (2) |
|
10.2 Routing to NGINX Nodes Without an AWS ELB |
|
|
101 | (1) |
|
|
102 | (2) |
|
10.4 Deploying from the AWS Marketplace |
|
|
104 | (1) |
|
10.5 Creating an NGINX Virtual Machine Image on Azure |
|
|
105 | (2) |
|
10.6 Load Balancing Over NGINX Scale Sets on Azure |
|
|
107 | (1) |
|
10.7 Deploying Through the Azure Marketplace |
|
|
108 | (1) |
|
10.8 Deploying to Google Compute Engine |
|
|
109 | (1) |
|
10.9 Creating a Google Compute Image |
|
|
109 | (1) |
|
10.10 Creating a Google App Engine Proxy |
|
|
110 | (3) |
|
11 Containers/Microservices |
|
|
113 | (18) |
|
|
113 | (1) |
|
11.1 Using NGINX as an API Gateway |
|
|
114 | (4) |
|
11.2 Using DNS SRV Records with NGINX Plus |
|
|
118 | (1) |
|
11.3 Using the Official NGINX Image |
|
|
119 | (1) |
|
11.4 Creating an NGINX Dockerfile |
|
|
120 | (2) |
|
11.5 Building an NGINX Plus Docker Image |
|
|
122 | (2) |
|
11.6 Using Environment Variables in NGINX |
|
|
124 | (1) |
|
11.7 Kubernetes Ingress Controller |
|
|
125 | (2) |
|
11.8 Prometheus Exporter Module |
|
|
127 | (1) |
|
11.9 NGINX Service Mesh mTLS |
|
|
128 | (3) |
|
12 High-Availability Deployment Modes |
|
|
131 | (8) |
|
|
131 | (1) |
|
|
131 | (1) |
|
12.2 Load-Balancing Load Balancers with DNS |
|
|
132 | (1) |
|
12.3 Load Balancing on EC2 |
|
|
132 | (1) |
|
12.4 NGINX Plus Configuration Synchronization |
|
|
133 | (3) |
|
12.5 State Sharing with NGINX Plus and Zone Sync |
|
|
136 | (3) |
|
13 Advanced Activity Monitoring |
|
|
139 | (8) |
|
|
139 | (1) |
|
13.1 Enable NGINX Open Source Stub Status |
|
|
139 | (1) |
|
13.2 Enabling the NGINX Plus Monitoring Dashboard |
|
|
140 | (3) |
|
13.3 Collecting Metrics Using the NGINX Plus API |
|
|
143 | (4) |
|
14 Debugging and Troubleshooting with Access Logs, Error Logs, and Request Tracing |
|
|
147 | (8) |
|
|
147 | (1) |
|
14.1 Configuring Access Logs |
|
|
147 | (2) |
|
14.2 Configuring Error Logs |
|
|
149 | (1) |
|
14.3 Forwarding to Syslog |
|
|
150 | (1) |
|
|
151 | (1) |
|
14.5 OpenTracing for NGINX |
|
|
152 | (3) |
|
|
155 | (6) |
|
|
155 | (1) |
|
15.1 Automating Tests with Load Drivers |
|
|
155 | (1) |
|
15.2 Keeping Connections Open to Clients |
|
|
156 | (1) |
|
15.3 Keeping Connections Open Upstream |
|
|
157 | (1) |
|
|
158 | (1) |
|
15.5 Buffering Access Logs |
|
|
159 | (1) |
|
|
159 | (2) |
|
16 Introduction to NGINX Instance Manager |
|
|
161 | (6) |
|
|
161 | (1) |
|
|
161 | (2) |
|
|
163 | (2) |
|
16.3 Automating NGINX Discovery, Configuration, and Monitoring with the API |
|
|
165 | (2) |
|
17 Introduction to NGINX Controller |
|
|
167 | (8) |
|
|
167 | (1) |
|
|
167 | (2) |
|
17.2 Connecting NGINX Plus with Controller |
|
|
169 | (1) |
|
17.3 Driving NGINX Controller with the API |
|
|
170 | (1) |
|
17.4 Enable WAF Through Controller App Security |
|
|
171 | (4) |
|
18 Practical Ops Tips and Conclusion |
|
|
175 | (4) |
|
|
175 | (1) |
|
18.1 Using Includes for Clean Configs |
|
|
175 | (1) |
|
|
176 | (3) |
Conclusion |
|
179 | (2) |
Index |
|
181 | |