Skip to content

Commit 764aa46

Browse files
authored
Merge branch 'main' into main
2 parents 9b09489 + 837b019 commit 764aa46

File tree

12 files changed

+290
-11
lines changed

12 files changed

+290
-11
lines changed

content/ngf/overview/custom-policies.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ The following table summarizes NGINX Gateway Fabric custom policies:
1717

1818
{{< bootstrap-table "table table-striped table-bordered" >}}
1919

20-
| Policy | Description | Attachment Type | Supported Target Object(s) | Supports Multiple Target Refs | Mergeable | API Version |
21-
|---------------------------------------------------------------------------------------|---------------------------------------------------------|-----------------|-------------------------------|-------------------------------|-----------|-------------|
22-
| [ClientSettingsPolicy]({{< ref "/ngf/how-to/traffic-management/client-settings.md" >}}) | Configure connection behavior between client and NGINX | Inherited | Gateway, HTTPRoute, GRPCRoute | No | Yes | v1alpha1 |
23-
| [ObservabilityPolicy]({{< ref "/ngf/how-to/monitoring/tracing.md" >}}) | Define settings related to tracing, metrics, or logging | Direct | HTTPRoute, GRPCRoute | Yes | No | v1alpha1 |
20+
| Policy | Description | Attachment Type | Supported Target Object(s) | Supports Multiple Target Refs | Mergeable | API Version |
21+
|---------------------------------------------------------------------------------------------|---------------------------------------------------------|-----------------|-------------------------------|-------------------------------|-----------|-------------|
22+
| [ClientSettingsPolicy]({{< ref "/ngf/how-to/traffic-management/client-settings.md" >}}) | Configure connection behavior between client and NGINX | Inherited | Gateway, HTTPRoute, GRPCRoute | No | Yes | v1alpha1 |
23+
| [ObservabilityPolicy]({{< ref "/ngf/how-to/monitoring/tracing.md" >}}) | Define settings related to tracing, metrics, or logging | Direct | HTTPRoute, GRPCRoute | Yes | No | v1alpha2 |
24+
| [UpstreamSettingsPolicy]({{< ref "/ngf/how-to/traffic-management/upstream-settings.md" >}}) | Configure connection behavior between NGINX and backend | Direct | Service | Yes | Yes | v1alpha1 |
2425

2526
{{< /bootstrap-table >}}
2627

content/ngf/overview/product-telemetry.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ Telemetry data is collected once every 24 hours and sent to a service managed by
3232
- **Image Build Source:** whether the image was built by GitHub or locally (values are `gha`, `local`, or `unknown`). The source repository of the images is **not** collected.
3333
- **Deployment Flags:** a list of NGINX Gateway Fabric Deployment flags that are specified by a user. The actual values of non-boolean flags are **not** collected; we only record that they are either `true` or `false` for boolean flags and `default` or `user-defined` for the rest.
3434
- **Count of Resources:** the total count of resources related to NGINX Gateway Fabric. This includes `GatewayClasses`, `Gateways`, `HTTPRoutes`,`GRPCRoutes`, `TLSRoutes`, `Secrets`, `Services`, `BackendTLSPolicies`, `ClientSettingsPolicies`, `NginxProxies`, `ObservabilityPolicies`, `UpstreamSettingsPolicies`, `SnippetsFilters`, and `Endpoints`. The data within these resources is **not** collected.
35-
- **SnippetsFilters Info**a list of directive-context strings from applied SnippetFilters and a total count per strings. The actual value of any NGINX directive is **not** collected.
35+
- **SnippetsFilters Info:** a list of directive-context strings from applied SnippetFilters and a total count per strings. The actual value of any NGINX directive is **not** collected.
36+
3637
This data is used to identify the following information:
3738

3839
- The flavors of Kubernetes environments that are most popular among our users.

content/nginxaas-azure/app-protect/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: NGINX App Protect WAF (Preview)
2+
title: NGINX App Protect WAF
33
weight: 200
44
url: /nginxaas/azure/app-protect/
55
---

content/nginxaas-azure/app-protect/configure-waf.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,30 @@ The following table shows the path to the precompiled policy file that needs to
101101

102102
To view the contents of the available security policies, navigate to the azure portal and select the **Security Policies** tab in the App Protect section.
103103

104-
{{<note>}}Custom policies are not supported at this time.{{</note>}}
104+
## Custom policies
105+
106+
NGINXaas for Azure also supports custom security policies. You can create and modify custom security policies to deploy to NGINX App Protect Instances using the API or Azure Portal.
107+
108+
### Manage custom policies
109+
110+
To create a custom security policy in the Azure Portal:
111+
112+
1. Select your deployment
113+
2. Select **NGINX app protect WAF** from the menu on the left
114+
3. Select **Custom Policies**
115+
4. Select **Add Custom Security Policy** to open the policy editor
116+
117+
In the policy editor, enter the **Name**, **File path**, your policy content, and then select **Save**. The **File path** is optional and will default to the path "/etc/app_protect/conf/" plus the policy **Name** with a ".json" extension. After your policy has been saved, you can then reference it in your NGINX configuration. For more information on policy configuration and syntax, refer to the NGINX App Protect [configuration guide](https://docs.nginx.com/nginx-app-protect-waf/v5/configuration-guide/configuration/).
118+
119+
{{<note>}}The **name** field within the security policy must be unique among the policies referenced in your NGINX configuration.{{</note>}}
120+
121+
{{<warning>}}Referencing both custom and precompiled policies in your NGINX configuration is not supported at this time.
122+
As a workaround, make a copy of the default policy you want to use, then add it as a custom policy with a different name.
123+
{{</warning>}}
124+
125+
The **Custom Policies** tab shows the status of your custom policies (Compilation and Application Status). Custom policies are automatically compiled when created or modified. Policies that are applied to the NGINX configuration cannot be deleted until they are first removed from the configuration.
126+
127+
It is highly recommended to use logging to monitor the performance of NGINX App Protect WAF and to help diagnose problems. See [Enable App Protect WAF Logs]({{< ref "/nginxaas-azure/app-protect/enable-logging.md" >}}) for directions to configure security and operational logs.
105128

106129
## What's next
107130

content/nginxaas-azure/app-protect/enable-waf.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ This guide explains how to enable F5 NGINX App Protect WAF on a F5 NGINX as a Se
1414
## Before you start
1515
- NGINX App Protect WAF can only be enabled on NGINXaaS for Azure deployments with the **Standard v2** [plan]({{< ref "/nginxaas-azure/billing/overview.md" >}})
1616

17-
## Enable NGINX App Protect (Preview)
17+
## Enable NGINX App Protect
18+
1819
NGINX App Protect is disabled by default and needs to be explicitly enabled on an NGINXaaS deployment. Follow these steps:
1920

2021
### Using the Microsoft Azure Portal

content/nginxaas-azure/changelog.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ To see a list of currently active issues, visit the [Known issues]({{< ref "/ngi
1313

1414
To review older entries, visit the [Changelog archive]({{< ref "/nginxaas-azure/changelog-archive" >}}) section.
1515

16+
## April 22, 2025
17+
18+
### What's New
19+
20+
- {{% icon-feature %}} **NGINX App Protect WAF is now generally available**
21+
22+
NGINX App Protect WAF is now generally available and is no longer a preview feature and will therefore be billed as specified in the [Azure Marketplace](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/f5-networks.f5-nginx-for-azure?tab=PlansAndPrice)
23+
1624
## April 16, 2025
1725

1826
- {{% icon-feature %}} **Notification on update to deployments using the Stable Upgrade Channel**
@@ -24,7 +32,6 @@ To review older entries, visit the [Changelog archive]({{< ref "/nginxaas-azure/
2432

2533
If you have any questions or concerns, please [contact us]({{< ref "/nginxaas-azure/troubleshooting/troubleshooting.md" >}}).
2634

27-
2835
## March 31, 2025
2936

3037
### What's New

content/nginxaas-azure/known-issues.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ url: /nginxaas/azure/known-issues/
99

1010
List of known issues in the latest release of F5 NGINX as a Service for Azure (NGINXaaS).
1111

12+
### {{% icon-bug %}} Custom and precompiled security policies cannot both be referenced in an NGINX configuration
13+
14+
When using NGINX App Protect WAF, you can only reference default or custom security policies in your NGINX configuration, not both.
15+
16+
**Workaround**: Make a copy of the default policy you want to use, then add it as a custom policy with a different name.
17+
1218
### {{% icon-bug %}} Terraform fails to apply due to validation errors, but creates "Failed" resources in Azure (ID-4424)
1319

1420
Some validation errors are caught later in the creation process, and can leave behind "Failed" resources in Azure. An example initial failure might look like:

content/nginxaas-azure/troubleshooting/troubleshooting.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ To contact support about F5 NGINX as a Service for Azure (NGINXaaS):
3838
- Date and time of the issue
3939
- Resource ID
4040

41+
If your deployment is configured to use NGINX App Protect WAF, please collect the following information also:
42+
43+
- Package versions from the NGINX App Protect WAF page
44+
- Security policies in-use and the content of all custom security policies
45+
4146
{{< img src="nginxaas-azure/properties.png" alt="Screenshot of the Azure portal showing the Properties section" >}}
4247

4348
8. Complete the **Additional information** and **Contact details** sections of your case and select **Submit**.

content/nim/nginx-app-protect/setup-waf-config-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ Follow these steps to get and upload the certificate and key:
301301
4. Create a JSON file that includes the contents of both files. Replace newlines (`\n`) in each file with literal `\n` characters so the certificate and key can be formatted correctly inside the JSON.
302302

303303
<details open>
304-
<summary>Example resquest</summary>
304+
<summary>Example request</summary>
305305

306306
```json
307307
{

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ module github.com/nginxinc/docs
22

33
go 1.19
44

5-
require github.com/nginxinc/nginx-hugo-theme v0.42.1 // indirect
5+
require github.com/nginxinc/nginx-hugo-theme v0.42.28 // indirect

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
github.com/nginxinc/nginx-hugo-theme v0.42.1 h1:SYj7R7fKPYwtbQobTcJWy/ZWQxa5tlHCSJfU2dxYXxY=
22
github.com/nginxinc/nginx-hugo-theme v0.42.1/go.mod h1:DPNgSS5QYxkjH/BfH4uPDiTfODqWJ50NKZdorguom8M=
3+
github.com/nginxinc/nginx-hugo-theme v0.42.27 h1:D80Sf/o9lR4P0NDFfP/hCQllohz6C5qlJ4nGNfdfnqM=
4+
github.com/nginxinc/nginx-hugo-theme v0.42.27/go.mod h1:DPNgSS5QYxkjH/BfH4uPDiTfODqWJ50NKZdorguom8M=
5+
github.com/nginxinc/nginx-hugo-theme v0.42.28 h1:1SGzBADcXnSqP4rOKEhlfEUloopH6UvMg+XTyVVQyjU=
6+
github.com/nginxinc/nginx-hugo-theme v0.42.28/go.mod h1:DPNgSS5QYxkjH/BfH4uPDiTfODqWJ50NKZdorguom8M=

layouts/index.html

Lines changed: 231 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{{ define "main" }}
2+
<div data-mf="false">
23
<div class="page col-md-12 col-xl-12 pl-md-5" id="site-home">
34

45
<div class="justify-content-left" style="margin-left: 1.5em;">
@@ -191,5 +192,235 @@ <h3 class="saas-title">NGINX Unit</h3>
191192
</div>
192193
</section>
193194
</div>
195+
</div>
196+
197+
{{/* mf homepage */}}
198+
199+
<div class="homepage" data-mf="true">
200+
<div class="homepage-section">
201+
<div class="homepage-heading">
202+
NGINX Product Documentation
203+
</div>
204+
<div class="homepage-banner-text">
205+
Learn how to deliver, manage, and protect your applications using F5 NGINX products.
206+
</div>
207+
<h1 class="homepage-heading">
208+
NGINX One
209+
</h1>
210+
<a href="{{ .Site.BaseURL }}nginx-one" alt="NGINX One Console">
211+
<div class="homepage-item">
212+
<div class="homepage-item-heading">
213+
<div class="homepage-item-logo">
214+
<img class="card-img-top" src="{{ .Site.BaseURL }}/images/icons/NGINX-One-product-icon.png">
215+
</div>
216+
<h1 class="homepage-item-text">
217+
NGINX One Console
218+
</h1>
219+
</div>
220+
<div class="homepage-item-content">
221+
Monitor your infrastructure, address security vulnerabilities, and assess the health of your NGINX fleet, all from a single console.
222+
</div>
223+
</div>
224+
</a>
225+
226+
<a href="{{ .Site.BaseURL }}nginx" alt="NGINX Plus">
227+
<div class="homepage-item">
228+
<div class="homepage-item-heading">
229+
<div class="homepage-item-logo">
230+
<img class="card-img-top" src="{{ .Site.BaseURL }}/images/icons/NGINX-Plus-product-icon-RGB.png">
231+
</div>
232+
<div class="homepage-item-text">
233+
NGINX Plus
234+
</div>
235+
</div>
236+
<div class="homepage-item-content">
237+
The all-in-one load balancer, reverse proxy, web server, content cache, and API gateway.
238+
</div>
239+
</div>
240+
</a>
241+
242+
<a href="{{ .Site.BaseURL }}nginx-instance-manager" alt="NGINX Instance Manager">
243+
<div class="homepage-item">
244+
<div class="homepage-item-heading">
245+
<div class="homepage-item-logo">
246+
<img class="card-img-top" src="{{ .Site.BaseURL }}/images/icons/NGINX-Instance-Manager-product-icon.png">
247+
</div>
248+
<div class="homepage-item-text">
249+
NGINX Instance Manager
250+
</div>
251+
</div>
252+
<div class="homepage-item-content">
253+
Track and control NGINX Open Source and NGINX Plus instances.
254+
</div>
255+
</div>
256+
</a>
257+
258+
<a href="{{ .Site.BaseURL }}nginx-ingress-controller" alt="NGINX Ingress Controller">
259+
<div class="homepage-item">
260+
<div class="homepage-item-heading">
261+
<div class="homepage-item-logo">
262+
<img class="card-img-top" src="{{ .Site.BaseURL }}/images/icons/NGINX-Ingress-Controller-product-icon.png">
263+
</div>
264+
<div class="homepage-item-text">
265+
NGINX Ingress Controller
266+
</div>
267+
</div>
268+
<div class="homepage-item-content">
269+
Kubernetes traffic management with API gateway, identity, and observability features
270+
</div>
271+
</div>
272+
</a>
273+
274+
<a href="{{ .Site.BaseURL }}nginx-gateway-fabric" alt="NGINX Gateway Fabric">
275+
<div class="homepage-item">
276+
<div class="homepage-item-heading">
277+
<div class="homepage-item-logo">
278+
<img class="card-img-top" src="{{ .Site.BaseURL }}/images/icons/NGINX-Gateway-Fabric-product-icon.png">
279+
</div>
280+
<div class="homepage-item-text">
281+
NGINX Gateway Fabric
282+
</div>
283+
</div>
284+
<div class="homepage-item-content">
285+
Next generation Kubernetes connectivity using the Gateway API.
286+
</div>
287+
</div>
288+
</a>
289+
290+
<a href="https://nginx.org/en/docs/" alt="NGINX Open Source">
291+
<div class="homepage-item">
292+
<div class="homepage-item-heading">
293+
<div class="homepage-item-logo">
294+
<img class="card-img-top" src="{{ .Site.BaseURL }}/images/icons/NGINX-product-icon.png">
295+
</div>
296+
<div class="homepage-item-text">
297+
NGINX Open Source
298+
</div>
299+
</div>
300+
<div class="homepage-item-content">
301+
The open source all-in-one load balancer, content cache, and web server
302+
</div>
303+
</div>
304+
</a>
305+
306+
<a href="{{ .Site.BaseURL }}nginx-agent" alt="NGINX Agent">
307+
<div class="homepage-item">
308+
<div class="homepage-item-heading">
309+
<div class="homepage-item-logo">
310+
<img class="card-img-top" src="{{ .Site.BaseURL }}/images/icons/NGINX-product-icon.png">
311+
</div>
312+
<div class="homepage-item-text">
313+
NGINX Agent
314+
</div>
315+
</div>
316+
<div class="homepage-item-content">
317+
A daemon providing observability data and remote configuration for NGINX Open Source and NGINX Plus instances
318+
</div>
319+
</div>
320+
</a>
321+
322+
<a href="{{ .Site.BaseURL }}solutions" alt="NGINX Solutions">
323+
<div class="homepage-item">
324+
<div class="homepage-item-heading">
325+
<div class="homepage-item-logo">
326+
<img src="{{ .Site.BaseURL }}/images/icons/NGINX-product-icon.png">
327+
</div>
328+
<div class="homepage-item-text">
329+
Subscription Licensing & Solutions
330+
</div>
331+
</div>
332+
<div class="homepage-item-content">
333+
Stay compliant with your NGINX subscription licenses and see how you can use NGINX One to build secure, scalable, and high-performing applications and APIs.
334+
</div>
335+
</div>
336+
</a>
337+
338+
</div>
339+
340+
<div class="homepage-section">
341+
<div class="homepage-heading">
342+
NGINX App Protect
343+
</div>
344+
345+
<a href="{{ .Site.BaseURL }}nginx-app-protect-waf" class="products-card" alt="NGINX App Protect WAF">
346+
<div class="homepage-item">
347+
<div class="homepage-item-heading">
348+
<div class="homepage-item-logo">
349+
<img src="{{ .Site.BaseURL }}/images/icons/NGINX-App-Protect-WAF-product-icon.png">
350+
</div>
351+
<div class="homepage-item-text">
352+
NGINX App Protect WAF
353+
</div>
354+
</div>
355+
<div class="homepage-item-content">
356+
Lightweight, high-performance, advanced protection against Layer 7 attacks on your apps and APIs
357+
</div>
358+
</div>
359+
</a>
360+
361+
<a href="{{ .Site.BaseURL }}nginx-app-protect-dos" class="products-card" alt="NGINX App Protect DoS">
362+
<div class="homepage-item">
363+
<div class="homepage-item-heading">
364+
<div class="homepage-item-logo">
365+
<img src="{{ .Site.BaseURL }}/images/icons/NGINX-App-Protect-DoS-product-icon.png">
366+
</div>
367+
<div class="homepage-item-text">
368+
NGINX App Protect DoS
369+
</div>
370+
</div>
371+
<div class="homepage-item-content">
372+
Defend, adapt, and mitigate against Layer 7 denial-of-service attacks on your apps and APIs
373+
</div>
374+
</div>
375+
</a>
376+
</div>
377+
378+
<div class="homepage-section">
379+
<div class="homepage-heading">
380+
NGINX as a Service
381+
</div>
382+
383+
<a href="{{ .Site.BaseURL }}nginxaas/azure" alt="NGINX as a Service for Azure">
384+
<div class="homepage-item">
385+
<div class="homepage-item-heading">
386+
<div class="homepage-item-logo">
387+
<img class="card-img-top" src="{{ .Site.BaseURL }}/images/icons/NGINX-for-Azure-product-icon.png">
388+
</div>
389+
<div class="homepage-item-text">
390+
NGINX as a Service for Azure
391+
</div>
392+
</div>
393+
394+
<div class="homepage-item-content">
395+
Infrastructure-as-a-Service (IaaS) version of NGINX Plus for your Microsoft Azure application stack
396+
</div>
397+
</div>
398+
</a>
399+
</div>
400+
401+
402+
<div class="homepage-section">
403+
<div class="homepage-heading">
404+
More NGINX Products
405+
</div>
406+
407+
<a href="https://unit.nginx.org/" alt="NGINX Unit">
408+
<div class="homepage-item">
409+
<div class="homepage-item-heading">
410+
<div class="homepage-item-logo">
411+
<img class="card-img-top" src="{{ .Site.BaseURL }}/images/icons/NGINX-One-product-icon.png">
412+
</div>
413+
<div class="homepage-item-text">
414+
NGINX Unit
415+
</div>
416+
</div>
417+
<div class="homepage-item-content">
418+
Dynamic app server that can run beside NGINX, NGINX Plus, or on its own
419+
</div>
420+
</div>
421+
</a>
422+
</div>
423+
424+
</div>
194425

195426
{{ end }}

0 commit comments

Comments
 (0)