Skip to content

Commit e3a4397

Browse files
authored
Merge branch 'main' into main
2 parents c0628f6 + 76b9424 commit e3a4397

File tree

12 files changed

+147
-135
lines changed

12 files changed

+147
-135
lines changed

content/nap-waf/v5/admin-guide/overview.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ F5 NGINX App Protect WAF v5, designed for NGINX Open Source and NGINX Plus envir
1313

1414
### Key Advantages
1515

16-
- Ability to work with NGINX Open Source in addition to NGINX Plus.
16+
- Ability to work with NGINX Open Source as well as NGINX Plus.
1717
- Scalable architecture, ideal for both small and large-scale deployments.
1818
- Seamless integration with existing DevOps and SecOps workflows.
1919

@@ -44,7 +44,7 @@ NGINX App Protect WAF v5 supports the following operating systems:
4444

4545
## Deployment Types
4646

47-
NGINX App Protect WAF v5 supports a range of deployment scenarios to meet various operational needs:
47+
NGINX App Protect WAF v5 supports a range of use cases to meet various operational needs:
4848

4949
1. [Docker Compose Deployment]({{< ref "/nap-waf/v5/admin-guide/deploy-on-docker.md" >}})
5050
- Deploys both NGINX and WAF components within containers.
@@ -55,8 +55,8 @@ NGINX App Protect WAF v5 supports a range of deployment scenarios to meet variou
5555
- Ideal for scalable, cloud-native environments.
5656

5757
3. [NGINX on Host/VM with Containerized WAF]({{< ref "/nap-waf/v5/admin-guide/install.md" >}})
58-
- NGINX is operated directly on the host system or a virtual machine, with WAF components deployed in containers.
59-
- Perfect for situations where NGINX is already in use on host systems, allowing for the addition of WAF components without disrupting the existing NGINX setup.
58+
- NGINX operates on the host system or a virtual machine. WAF components are deployed in containers.
59+
- Perfect for situations where NGINX is already in use on host systems. Addition of WAF components will not disrupt the existing NGINX setup.
6060

6161
## NGINX App Protect WAF Compiler
6262

@@ -70,41 +70,41 @@ For signature updates, read the [Update App Protect Signatures]({{< ref "/nap-wa
7070

7171
## Transitioning from NGINX App Protect WAF v4 to v5
7272

73-
Upgrading directly from v4 to v5 is not supported due to architectural changes in NGINX App Protect WAF v5.
73+
Upgrading from v4 to v5 is not supported due to architectural changes in NGINX App Protect WAF v5.
7474

7575
{{< note >}}
76-
We recommend that you deploy the NGINX App Protect WAF v5 in a staging environment. Only after you compile policies with WAF compiler and test the enforcement should you transfer the traffic from the v4 to v5. This keeps the v4 deployment for backup.
76+
We recommend that you deploy the NGINX App Protect WAF v5 in a staging environment. Compile policies with WAF compiler and test the enforcement before you transfer the traffic from the v4 to v5. This keeps the v4 deployment for backup.
7777
{{< /note >}}
7878

79-
1. Back up your NGINX App Protect WAF configuration files, such as NGINX configurations, JSON policies, logging profiles, user-defined signatures, and global settings.
79+
1. Back up your NGINX App Protect WAF configuration files. These include NGINX configurations, JSON policies, logging profiles, user-defined signatures, and global settings.
8080

81-
1. Install NGINX App Protect WAF 5 (using either nginx OSS or nginx-plus based on the need of customer's application).
81+
2. Install NGINX App Protect WAF 5. Use either nginx OSS or nginx-plus based on the need of customer's application.
8282
- [Installing NGINX App Protect WAF]({{<ref "/nap-waf/v5/admin-guide/install.md">}})
8383
- [Deploying NGINX App Protect WAF on Docker]({{<ref "/nap-waf/v5/admin-guide/deploy-on-docker.md">}})
8484
- [Deploying NGINX App Protect WAF on Kubernetes]({{<ref "/nap-waf/v5/admin-guide/deploy-with-helm.md">}})
8585

86-
1. Compile your `.json` policies and logging profiles to `.tgz` bundles using [compiler-image]({{<ref "/nap-waf/v5/admin-guide/compiler.md">}}) because NGINX App Protect WAF v5 supports policies and logging profiles in a compiled bundle format only.
86+
3. Compile your `.json` policies and logging profiles to `.tgz` bundles using [compiler-image]({{<ref "/nap-waf/v5/admin-guide/compiler.md">}}). NGINX App Protect WAF v5 supports policies and logging profiles in a compiled bundle format only.
8787

8888
{{< note >}}
89-
If you were previously using a default [logging profile]({{<ref "/nap-waf/v5/admin-guide/deploy-on-docker.md#using-policy-and-logging-profile-bundles">}}) JSON like `/opt/app_protect/share/defaults/log_all.json`, you can replace it with the default constant such as `log_all`, and then you will not need to explicitly compile the logging profile into a bundle.
89+
If you were previously using a default [logging profile]({{<ref "/nap-waf/v5/admin-guide/deploy-on-docker.md#using-policy-and-logging-profile-bundles">}}) JSON like `/opt/app_protect/share/defaults/log_all.json`, you can replace it with the default constant such as `log_all`, and then you will not need to compile the logging profile into a bundle.
9090

9191
```nginx
9292
app_protect_security_log log_all /log_volume/security.log;
9393
```
9494

9595
{{< /note >}}
9696

97-
1. Replace the `.json` references in nginx.conf with the above created `.tgz` [bundles]({{<ref "/nap-waf/v5/admin-guide/install.md#using-policy-and-logging-profile-bundles">}}).
97+
4. Replace the `.json` references in nginx.conf with the above created `.tgz` [bundles]({{<ref "/nap-waf/v5/admin-guide/install.md#using-policy-and-logging-profile-bundles">}}).
9898

99-
1. Make sure that `.tgz` bundles references are accessible to the `waf-config-mgr` container.
99+
5. Make sure that `.tgz` bundles references are accessible to the `waf-config-mgr` container.
100100

101-
1. Restart the deployment if it has already been initiated. Additionally, restart NGINX if utilizing the VM + containers deployment type. After the migrations, check that the NGINX process is running in the NGINX error log and there are no issues.
101+
6. Restart the deployment if it has already initiated. Additionally, restart NGINX if utilizing the VM + containers deployment type. After the migrations, check that the NGINX process is running in the NGINX error log and there are no issues.
102102

103103

104104
---
105105

106106
## Troubleshooting and FAQs
107107

108-
See common deployment challenges and solutions to ensure a smooth setup process in the [Troubleshooting Guide]({{< ref "/nap-waf/v5/troubleshooting-guide/troubleshooting.md#nginx-app-protect-5" >}}).
108+
Review the [Troubleshooting Guide]({{< ref "/nap-waf/v5/troubleshooting-guide/troubleshooting.md#nginx-app-protect-5" >}}) for common deployment challenges and solutions to ensure a smooth setup process.
109109

110110
Docker images for NGINX App Protect WAF v5 are built using Ubuntu 22.04 (Jammy) binaries.

content/ngf/overview/resource-validation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ More information on CEL in Kubernetes can be found [here](https://kubernetes.io/
6262
This step catches the following cases of invalid values:
6363

6464
- Valid values from the Gateway API perspective but not supported by NGINX Gateway Fabric yet. For example, a feature in an HTTPRoute routing rule. For the list of supported features see [Gateway API Compatibility]({{< relref "./gateway-api-compatibility.md" >}}) doc.
65-
- Valid values from the Gateway API perspective, but invalid for NGINX, because NGINX has stricter validation requirements for certain fields. These values will cause NGINX to fail to reload or operate erroneously.
66-
- Invalid values (both from the Gateway API and NGINX perspectives) that were not rejected because Step 1 was bypassed. Similar to the previous case, these values will cause NGINX to fail to reload or operate erroneously.
65+
- Valid values from the Gateway API perspective, but invalid for NGINX. NGINX has stricter validation requirements for certain fields. These values will cause NGINX to fail to reload or operate erroneously.
66+
- Invalid values (both from the Gateway API and NGINX perspectives) that were not rejected because Step 1 was bypassed. These values will cause NGINX to fail to reload or operate incorrectly.
6767
- Malicious values that inject unrestricted NGINX config into the NGINX configuration (similar to an SQL injection attack).
6868

6969
Below is an example of how NGINX Gateway Fabric rejects an invalid resource. The validation error is reported via the status:

content/nginx/admin-guide/content-cache/content-caching.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ When caching is enabled, F5 NGINX Plus saves responses in a disk cache and uses
1717
To learn more about NGINX Plus’s caching capabilities, watch the [Content Caching with NGINX](https://nginx.com/resources/webinars/content-caching-nginx-plus/) webinar on demand and get an in‑depth review of features such as dynamic [content caching](https://nginx.com/products/nginx/caching/), cache purging, and delayed caching.
1818

1919
<span id="enable"></span>
20-
## Enabling the Caching of Responses
20+
## Enable the Caching of Responses
2121

2222
To enable caching, include the [`proxy_cache_path`](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path) directive in the top‑level `http {}` context. The mandatory first parameter is the local filesystem path for cached content, and the mandatory `keys_zone` parameter defines the name and size of the shared memory zone that is used to store metadata about cached items:
2323

@@ -65,7 +65,7 @@ proxy_cache_path /data/nginx/cache keys_zone=mycache:10m loader_threshold=300 lo
6565
```
6666

6767
<span id="select"></span>
68-
## Specifying Which Requests to Cache
68+
## Specify Which Requests to Cache
6969

7070
By default, NGINX Plus caches all responses to requests made with the HTTP `GET` and `HEAD` methods the first time such responses are received from a proxied server. As the key (identifier) for a request, NGINX Plus uses the request string. If a request has the same key as a cached response, NGINX Plus sends the cached response to the client. You can include various directives in the `http {}`, `server {}`, or `location {}` context to control which responses are cached.
7171

@@ -88,7 +88,7 @@ proxy_cache_methods GET HEAD POST;
8888
```
8989

9090
<span id="bypass"></span>
91-
## Limiting or Disabling Caching
91+
## Limit or Disable Caching
9292

9393
By default, responses remain in the cache indefinitely. They are removed only when the cache exceeds the maximum configured size, and then in order by length of time since they were last requested. You can set how long cached responses are considered valid, or even whether they are used at all, by including directives in the `http {}`, `server {}`, or `location {}` context:
9494

@@ -118,12 +118,12 @@ proxy_no_cache $http_pragma $http_authorization;
118118
```
119119

120120
<span id="purge"></span>
121-
## Purging Content From The Cache
121+
## Purge Content From The Cache
122122

123123
NGINX makes it possible to remove outdated cached files from the cache. This is necessary for removing outdated cached content to prevent serving old and new versions of web pages at the same time. The cache is purged upon receiving a special “purge” request that contains either a custom HTTP header, or the HTTP `PURGE` method.
124124

125125
<span id="purge_configure"></span>
126-
### Configuring Cache Purge
126+
### Configure Cache Purge
127127

128128
Let’s set up a configuration that identifies requests that use the HTTP `PURGE` method and deletes matching URLs.
129129

@@ -156,7 +156,7 @@ Let’s set up a configuration that identifies requests that use the HTTP `PURGE
156156
```
157157
158158
<span id="purge_request"></span>
159-
### Sending the Purge Command
159+
### Send the Purge Command
160160
161161
When the `proxy_cache_purge` directive is configured, you need to send a special cache‑purge request to purge the cache. You can issue purge requests using a range of tools, including the `curl` command as in this example:
162162
@@ -171,7 +171,7 @@ Connection: keep-alive
171171
In the example, the resources that have a common URL part (specified by the asterisk wildcard) are purged. However, such cache entries are not removed completely from the cache: they remain on disk until they are deleted for either inactivity (as determined by the `inactive` parameter to the [`proxy_cache_path`](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path) directive) or by the cache purger (enabled with the [`purger`](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#purger) parameter to `proxy_cache_path`), or a client attempts to access them.
172172

173173
<span id="purge_secure"></span>
174-
### Restricting Access to the Purge Command
174+
### Restrict Access to the Purge Command
175175

176176
We recommend that you limit the number of IP addresses that are allowed to send a cache‑purge request:
177177

@@ -191,7 +191,7 @@ map $request_method $purge_method {
191191
In this example, NGINX checks if the `PURGE` method is used in a request, and, if so, analyzes the client IP address. If the IP address is whitelisted, then the `$purge_method` is set to `$purge_allowed`: `1` permits purging, and `0` denies it.
192192

193193
<span id="purge_remove"></span>
194-
### Completely Removing Files from the Cache
194+
### Completely Remove Files from the Cache
195195

196196
To completely remove cache files that match an asterisk, activate a special `cache purger` process that permanently iterates through all cache entries and deletes the entries that match the wildcard key. Include the [`purger`](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#purger) parameter to the [`proxy_cache_path`](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path) directive in the `http {}` context:
197197

content/nginx/admin-guide/installing-nginx/installing-nginx-docker.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ type:
2424

2525

2626
<span id="nginx_plus_official_images"></span>
27-
## Using official NGINX Plus Docker images
27+
## Use official NGINX Plus Docker images
2828

2929
Since NGINX Plus NGINX Plus [Release 31]({{< ref "nginx/releases.md#r31" >}}) you can get an NGINX Plus image from the official NGINX Plus Docker registry and upload it to your private registry.
3030

@@ -66,7 +66,7 @@ The NGINX Plus registry contains images for the two most recent versions of NGIN
6666

6767
The image may contain a particular version of NGINX Plus or contain a bundle of NGINX Plus and NGINX Agent, and can be targeted for a specific architecture.
6868

69-
### Listing all tags
69+
### List all tags
7070

7171
For a complete tag list for NGINX Plus bundled with NGINX Agent images, use the command:
7272

@@ -90,7 +90,7 @@ where:
9090

9191

9292

93-
### Downloading the JSON Web Token or NGINX Plus certificate and key {#myf5-download}
93+
### Download the JSON Web Token or NGINX Plus certificate and key {#myf5-download}
9494

9595
Before you get a container image, you should provide the JSON Web Token file or SSL certificate and private key files provided with your NGINX Plus subscription. These files grant access to the package repository from which the script will download the NGINX Plus package:
9696

@@ -109,7 +109,7 @@ Before you get a container image, you should provide the JSON Web Token file or
109109

110110
{{% /tabs %}}
111111

112-
### Set up Docker for NGINX Plus Container Registry
112+
### Set up Docker for NGINX Plus container registry
113113

114114
Set up Docker to communicate with the NGINX Container Registry located at `private-registry.nginx.com`.
115115

@@ -144,7 +144,7 @@ docker login private-registry.nginx.com
144144

145145
{{% /tabs %}}
146146

147-
### Pulling the image
147+
### Pull the image
148148

149149
Next, pull the image you need from `private-registry.nginx.com`.
150150

@@ -183,7 +183,7 @@ docker pull private-registry.nginx.com/nginx-plus/modules:<version-tag>
183183

184184
{{< include "security/jwt-password-note.md" >}}
185185

186-
### Pushing the image to your private registry
186+
### Push the image to your private registry
187187

188188
After pulling the image, tag it and upload it to your private registry.
189189

@@ -205,7 +205,7 @@ docker tag private-registry.nginx.com/nginx-plus/base:<version-tag> <my-docker-r
205205
docker push <my-docker-registry>/nginx-plus/base:<version-tag>
206206
```
207207

208-
### Running the NGINX Plus container
208+
### Run the NGINX Plus container
209209

210210
{{< note >}} Starting from [NGINX Plus Release 33]({{< ref "nginx/releases.md#r33" >}}), the JWT file is required for each NGINX Plus instance. For more information, see [About Subscription Licenses]({{< ref "/solutions/about-subscription-licenses.md">}}). {{< /note >}}
211211

@@ -390,7 +390,7 @@ Any change made to the files in the local directories `/var/www and /var/nginx/c
390390
391391
392392
<span id="manage_copy"></span>
393-
### Copying Content and Configuration Files from the Docker Host
393+
### Copy content and configuration files from the Docker host
394394
395395
Docker can copy the content and configuration files from a local directory on the Docker host during container creation. Once a container is created, the files are maintained by creating a new container when files change or by modifying the files in the container.
396396
@@ -421,7 +421,7 @@ To make changes to the files in the container, use a helper container as describ
421421
422422
423423
<span id="manage_container"></span>
424-
### Maintaining Content and Configuration Files in the Container
424+
### Maintain content and configuration files in the container
425425
426426
As SSH cannot be used to access the NGINX container, to edit the content or configuration files directly you need to create a helper container that has shell access. For the helper container to have access to the files, create a new image that has the proper Docker data volumes defined for the image:
427427
@@ -476,12 +476,12 @@ To exit the shell and terminate the container, run the `exit` command.
476476
477477
478478
<span id="log"></span>
479-
## Managing Logging
479+
## Manage logging
480480
481481
You can use default logging or customize logging.
482482
483483
<span id="log_default"></span>
484-
### Using Default Logging
484+
### Use default logging
485485
486486
By default, the NGINX image is configured to send NGINX [access log](https://nginx.org/en/docs/http/ngx_http_log_module.html#access_log) and [error log](https://nginx.org/en/docs/ngx_core_module.html#error_log) to the Docker log collector. This is done by linking them to `stdout` and `stderr`: all messages from both logs are then written to the file `/var/lib/docker/containers/container-ID/container-ID-json.log` on the Docker host. The container‑ID is the long‑form ID returned when you [create a container](#docker_oss_image). To display the long form ID, run the command:
487487
@@ -507,7 +507,7 @@ To include only access log messages in the output, include only `stdout=1`. To l
507507
508508
509509
<span id="log_custom"></span>
510-
### Using Customized Logging
510+
### Use customized logging
511511
512512
If you want to configure logging differently for certain configuration blocks (such as `server {}` and `location {}`), define a Docker volume for the directory in which to store the log files in the container, create a helper container to access the log files, and use any logging tools. To implement this, create a new image that contains the volume or volumes for the logging files.
513513
@@ -524,7 +524,7 @@ Then you can [create an image](#docker_plus_image) and use it to create an NGINX
524524
525525
526526
<span id="control"></span>
527-
## Controlling NGINX
527+
## Control NGINX
528528
529529
Since there is no direct access to the command line of the NGINX container, NGINX commands cannot be sent to a container directly. Instead, [signals](https://nginx.org/en/docs/control.html) can be sent to a container via Docker `kill` command.
530530

0 commit comments

Comments
 (0)