Skip to content

Commit 387f02d

Browse files
committed
Merge branch 'main' into ngf-release-2.0
2 parents 639e5d3 + 7133d2f commit 387f02d

File tree

64 files changed

+2518
-1986
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+2518
-1986
lines changed

archetypes/concept.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ weight: i00
66
# Creates a table of contents and sidebar, useful for large documents
77
toc: false
88
# Types have a 1:1 relationship with Hugo archetypes, so you shouldn't need to change this
9-
type: concept
9+
nd-content-type: concept
1010
# Intended for internal catalogue and search, case sensitive:
1111
# Agent, N4Azure, NIC, NIM, NGF, NAP-DOS, NAP-WAF, NGINX One, NGINX+, Solutions, Unit
12-
product:
12+
nd-product:
1313
---
1414

1515
[//]: # "These are Markdown comments to guide you through document structure. Remove them as you go, as well as any unnecessary sections."

archetypes/default.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ weight: i00
66
# Creates a table of contents and sidebar, useful for large documents
77
toc: false
88
# Types have a 1:1 relationship with Hugo archetypes, so you shouldn't need to change this
9-
type: how-to
9+
nd-content-type: how-to
1010
# Intended for internal catalogue and search, case sensitive:
1111
# Agent, N4Azure, NIC, NIM, NGF, NAP-DOS, NAP-WAF, NGINX One, NGINX+, Solutions, Unit
12-
product:
12+
nd-product:
1313
---
1414

1515
[//]: # "These are Markdown comments to guide you through document structure. Remove them as you go, as well as any unnecessary sections."

archetypes/tutorial.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ weight: i00
66
# Creates a table of contents and sidebar, useful for large documents
77
toc: false
88
# Types have a 1:1 relationship with Hugo archetypes, so you shouldn't need to change this
9-
type: tutorial
9+
nd-content-type: tutorial
1010
# Intended for internal catalogue and search, case sensitive:
1111
# Agent, N4Azure, NIC, NIM, NGF, NAP-DOS, NAP-WAF, NGINX One, NGINX+, Solutions, Unit
12-
product:
12+
nd-product:
1313
---
1414

1515
[//]: # "These are Markdown comments to guide you through document structure. Remove them as you go, as well as any unnecessary sections."
Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,75 @@
1-
**Note**: To complete this step, make sure that `gpg` is installed on your system. You can install NGINX Agent using various command-line tools like `curl` or `wget`. If your NGINX Instance Manager host is not set up with valid TLS certificates, you can use the insecure flags provided by those tools. See the following examples:
1+
---
2+
docs: DOCS-1031
3+
files:
4+
- content/nim/nginx-app-protect/setup-waf-config-management.md
5+
---
6+
7+
{{<note>}}Make sure `gpg` is installed on your system before continuing. You can install NGINX Agent using command-line tools like `curl` or `wget`.{{</note>}}
8+
9+
If your NGINX Instance Manager host doesn't use valid TLS certificates, you can use the insecure flags to bypass verification. Here are some example commands:
210

311
{{<tabs name="install-agent-api">}}
412

513
{{%tab name="curl"%}}
614

7-
- Secure:
15+
- **Secure:**
816

917
```bash
10-
curl https://<NMS_FQDN>/install/nginx-agent | sudo sh
18+
curl https://<NIM_FQDN>/install/nginx-agent | sudo sh
1119
```
1220

13-
- Insecure:
21+
- **Insecure:**
1422

1523
```bash
16-
curl --insecure https://<NMS_FQDN>/install/nginx-agent | sudo sh
24+
curl --insecure https://<NIM_FQDN>/install/nginx-agent | sudo sh
1725
```
1826

19-
You can add your NGINX instance to an existing instance group or create one using `--instance-group` or `-g` flag when installing NGINX Agent.
20-
21-
The following example shows how to download and run the script with the optional `--instance-group` flag adding the NGINX instance to the instance group **my-instance-group**:
22-
23-
```bash
24-
curl https://<NMS_FQDN>/install/nginx-agent > install.sh; chmod u+x install.sh
25-
sudo ./install.sh --instance-group my-instance-group
26-
```
27+
To add the instance to a specific instance group during installation, use the `--instance-group` (or `-g`) flag:
2728

28-
By default, the install script attempts to use a secure connection when downloading packages. If, however, the script cannot create a secure connection, it uses an insecure connection instead and logs the following warning message:
29+
```shell
30+
curl https://<NIM_FQDN>/install/nginx-agent -o install.sh
31+
chmod u+x install.sh
32+
sudo ./install.sh --instance-group <instance group>
33+
```
2934

30-
``` text
31-
Warning: An insecure connection will be used during this nginx-agent installation
32-
```
35+
By default, the install script uses a secure connection to download packages. If it can’t establish one, it falls back to an insecure connection and logs this message:
3336

34-
To require a secure connection, you can set the optional flag `skip-verify` to `false`.
37+
```text
38+
Warning: An insecure connection will be used during this nginx-agent installation
39+
```
3540

36-
The following example shows how to download and run the script with an enforced secure connection:
41+
To enforce a secure connection, set the `--skip-verify` flag to false:
3742

38-
```bash
39-
curl https://<NMS_FQDN>/install/nginx-agent > install.sh chmod u+x install.sh; chmod u+x install.sh
40-
sudo sh ./install.sh --skip-verify false
41-
```
43+
```shell
44+
curl https://<NIM_FQDN>/install/nginx-agent -o install.sh
45+
chmod u+x install.sh
46+
sudo ./install.sh --skip-verify false
47+
```
4248

4349
{{%/tab%}}
4450

4551
{{%tab name="wget"%}}
4652

53+
- **Secure:**
4754

48-
- Secure:
49-
50-
```bash
51-
wget https://<NMS_FQDN>/install/nginx-agent -O - | sudo sh -s --skip-verify false
55+
```shell
56+
wget https://<NIM_FQDN>/install/nginx-agent -O - | sudo sh -s --skip-verify false
5257
```
5358

54-
- Insecure:
59+
- **Insecure:**
5560

56-
```bash
57-
wget --no-check-certificate https://<NMS_FQDN>/install/nginx-agent -O - | sudo sh
61+
```shell
62+
wget --no-check-certificate https://<NIM_FQDN>/install/nginx-agent -O - | sudo sh
5863
```
5964

60-
When you install the NGINX Agent, you can use the `--instance-group` or `-g` flag to add your NGINX instance to an existing instance group or to a new group that you specify.
61-
62-
The following example downloads and runs the NGINX Agent install script with the optional `--instance-group` flag, adding the NGINX instance to the instance group **my-instance-group**:
63-
64-
```bash
65-
wget https://gnms1.npi.f5net.com/install/nginx-agent -O install.sh ; chmod u+x install.sh
66-
sudo ./install.sh --instance-group my-instance-group
67-
```
65+
To add your instance to a group during installation, use the `--instance-group` (or `-g`) flag:
6866

67+
```shell
68+
wget https://<NIM_FQDN>/install/nginx-agent -O install.sh
69+
chmod u+x install.sh
70+
sudo ./install.sh --instance-group <instance group>
71+
```
6972

7073
{{%/tab%}}
71-
{{</tabs>}}
7274

73-
<!-- Do not remove. Keep this code at the bottom of the include -->
74-
<!-- DOCS-1031 -->
75+
{{</tabs>}}
Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
---
22
docs:
3+
file:
4+
- content/solutions/about-subscription-licenses.md
5+
- content/nap-waf/v5/admin-guide/install.md
36
---
47

58
1. Copy the license file to `/etc/nginx/license.jwt` on Linux or `/usr/local/etc/nginx/license.jwt` on FreeBSD for each NGINX Plus instance.
9+
2. Reload NGINX:
610

7-
1. **SELinux**: If you're running a Linux distribution with SELinux enabled, set the file security context type with the following command:
8-
9-
```bash
10-
chcon -t httpd_config_t /etc/nginx/license.jwt
11+
```shell
12+
systemctl reload nginx
1113
```
14+
15+
**If SELinux is enabled**:
16+
17+
Set the correct file context so NGINX can read the license:
18+
19+
```shell
20+
chcon -t httpd_config_t /etc/nginx/license.jwt
21+
```

content/includes/licensing-and-reporting/configure-nginx-plus-report-to-nim.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ docs:
1717
3. Reload NGINX:
1818
1919
``` bash
20-
nginx -s reload
20+
systemctl reload nginx
2121
```

content/includes/nap-waf/build-nginx-image-cmd.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ To build the image, execute the following command in the directory containing th
1010

1111

1212
```shell
13-
sudo docker build --no-cache \
13+
sudo docker build --no-cache --platform linux/amd64 \
1414
--secret id=nginx-crt,src=nginx-repo.crt \
1515
--secret id=nginx-key,src=nginx-repo.key \
1616
-t nginx-app-protect-5 .
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
docs: DOCS-000
3+
files:
4+
- content/nim/nginx-app-protect/setup-waf-config-management.md
5+
---
6+
7+
Restart the `nms-integrations` service:
8+
9+
```shell
10+
sudo systemctl restart nms-integrations
11+
```

content/nap-dos/deployment-guide/learn-about-deployment.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1405,7 +1405,7 @@ You need root permissions to execute the following steps.
14051405
6. Create a Docker image:
14061406
14071407
```shell
1408-
docker build --no-cache -t app-protect-dos .
1408+
docker build --no-cache --platform linux/amd64 -t app-protect-dos .
14091409
```
14101410
14111411
The `--no-cache` option tells Docker to build the image from scratch and ensures the installation of the latest version of NGINX Plus and NGINX App Protect DoS. If the Dockerfile was previously used to build an image without the `--no-cache` option, the new image uses versions from the previously built image from the Docker cache.
@@ -1707,7 +1707,7 @@ RUN apt-get update && apt-get install -y apt-transport-https lsb-release ca-cert
17071707
RUN wget -qO - https://cs.nginx.com/static/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
17081708
17091709
# Add NGINX Plus and NGINX App Protect DoS repository:
1710-
RUN printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg]https://pkgs.nginx.com/plus/ubuntu `lsb_release -cs` nginx-plus\n" | tee /etc/apt/sources.list.d/nginx-plus.list
1710+
RUN printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/plus/ubuntu `lsb_release -cs` nginx-plus\n" | tee /etc/apt/sources.list.d/nginx-plus.list
17111711
RUN printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/app-protect-dos/ubuntu `lsb_release -cs` nginx-plus\n" | tee /etc/apt/sources.list.d/nginx-app-protect-dos.list
17121712
17131713
# Download the apt configuration to `/etc/apt/apt.conf.d`:
@@ -1966,13 +1966,13 @@ Make sure to replace upstream and proxy pass directives in this example with rel
19661966
For CentOS:
19671967
19681968
```shell
1969-
docker build --no-cache -t app-protect-dos .
1969+
docker build --no-cache --platform linux/amd64 -t app-protect-dos .
19701970
```
19711971
19721972
For RHEL:
19731973
19741974
```shell
1975-
docker build --build-arg RHEL_ORGANIZATION=${RHEL_ORGANIZATION} --build-arg RHEL_ACTIVATION_KEY=${RHEL_ACTIVATION_KEY} --no-cache -t app-protect-dos .
1975+
docker build --platform linux/amd64 --build-arg RHEL_ORGANIZATION=${RHEL_ORGANIZATION} --build-arg RHEL_ACTIVATION_KEY=${RHEL_ACTIVATION_KEY} --no-cache -t app-protect-dos .
19761976
```
19771977
19781978
The `--no-cache` option tells Docker to build the image from scratch and ensures the installation of the latest version of NGINX Plus and NGINX App Protect DoS. If the Dockerfile was previously used to build an image without the `--no-cache` option, the new image uses versions from the previously built image from the Docker cache.

content/nap-waf/v4/admin-guide/install.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -939,7 +939,7 @@ If a user other than **nginx** is to be used, note the following:
939939
- For Oracle Linux/Debian/Ubuntu/Alpine/Amazon Linux:
940940
941941
```shell
942-
DOCKER_BUILDKIT=1 docker build --no-cache --secret id=nginx-crt,src=nginx-repo.crt --secret id=nginx-key,src=nginx-repo.key -t app-protect .
942+
DOCKER_BUILDKIT=1 docker build --no-cache --platform linux/amd64 --secret id=nginx-crt,src=nginx-repo.crt --secret id=nginx-key,src=nginx-repo.key -t app-protect .
943943
```
944944
945945
The `DOCKER_BUILDKIT=1` enables `docker build` to recognize the `--secret` flag which allows the user to pass secret information to be used in the Dockerfile for building docker images in a safe way that will not end up stored in the final image. This is a recommended practice for the handling of the certificate and private key for NGINX repository access (`nginx-repo.crt` and `nginx-repo.key` files). More information [here](https://docs.docker.com/engine/reference/commandline/buildx_build/#secret).
@@ -1289,7 +1289,7 @@ You need root permissions to execute the following steps.
12891289
- For Oracle Linux/Debian/Ubuntu/Alpine/Amazon Linux:
12901290
12911291
```shell
1292-
DOCKER_BUILDKIT=1 docker build --no-cache --secret id=nginx-crt,src=nginx-repo.crt --secret id=nginx-key,src=nginx-repo.key -t app-protect-converter .
1292+
DOCKER_BUILDKIT=1 docker build --no-cache --platform linux/amd64 --secret id=nginx-crt,src=nginx-repo.crt --secret id=nginx-key,src=nginx-repo.key -t app-protect-converter .
12931293
```
12941294
12951295
The `DOCKER_BUILDKIT=1` enables `docker build` to recognize the `--secret` flag which allows the user to pass secret information to be used in the Dockerfile for building docker images in a safe way that will not end up stored in the final image. This is a recommended practice for the handling of the certificate and private key for NGINX repository access (`nginx-repo.crt` and `nginx-repo.key` files). More information [here](https://docs.docker.com/engine/reference/commandline/buildx_build/#secret).

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ curl -s https://private-registry.nginx.com/v2/nap/waf-compiler/tags/list --key <
9898
Run the command below to build your image, where `waf-compiler-<version-tag>:custom` is an example of the image tag:
9999

100100
```shell
101-
sudo docker build --no-cache \
101+
sudo docker build --no-cache --platform linux/amd64 \
102102
--secret id=nginx-crt,src=nginx-repo.crt \
103103
--secret id=nginx-key,src=nginx-repo.key \
104104
-t waf-compiler-<version-tag>:custom .

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.

0 commit comments

Comments
 (0)