Skip to content

Commit 69a4d40

Browse files
travisamartinmjangy82
authored
Add flowcharts for NGINX Plus licensing and reporting (#1175)
Added flowcarts for NGINX Plus license verification and usage reporting requirements. Simplified language in Getting Started guide. --------- Co-authored-by: Mike Jang <3287976+mjang@users.noreply.github.com> Co-authored-by: yar <y82@users.noreply.github.com>
1 parent 095f985 commit 69a4d40

18 files changed

+435
-486
lines changed

content/includes/licensing-and-reporting/apply-jwt.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ file:
1515
systemctl reload nginx
1616
```
1717

18-
**If SELinux is enabled**:
18+
1. If SELinux is enabled, set the correct file context so NGINX can read the license:
1919

20-
Set the correct file context so NGINX can read the license:
21-
22-
```shell
23-
chcon -t httpd_config_t /etc/nginx/license.jwt
24-
```
20+
```shell
21+
chcon -t httpd_config_t /etc/nginx/license.jwt
22+
```

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,23 @@
22
docs:
33
---
44

5-
1. Open port `443` for NGINX Instance Manager.
5+
1. Allow NGINX Plus instances to connect to NGINX Instance Manager over HTTPS (TCP `443`).
66

7-
2. On each NGINX Plus instance, update the [`usage_report`](https://nginx.org/en/docs/ngx_mgmt_module.html#usage_report) directive in the [`mgmt`](https://nginx.org/en/docs/ngx_mgmt_module.html) block of the NGINX configuration (`/etc/nginx/nginx.conf`) to point to your NGINX Instance Manager host:
7+
1. On each NGINX Plus instance, set the [`usage_report`](https://nginx.org/en/docs/ngx_mgmt_module.html#usage_report) directive in the [`mgmt`](https://nginx.org/en/docs/ngx_mgmt_module.html) block of `/etc/nginx/nginx.conf` to point to your NGINX Instance Manager host:
88

99
```nginx
1010
mgmt {
11-
usage_report endpoint=<NGINX-INSTANCE-MANAGER-FQDN>;
11+
usage_report endpoint=<NGINX-INSTANCE-MANAGER-FQDN>;
1212
}
1313
```
1414
15-
{{<call-out "note" "Extra steps for self-signed certificates">}}If you use self-signed certificates in your NGINX Instance Manager environment, follow the steps in [Configure SSL verification for usage reporting with self-signed certificates]({{< ref "nim/system-configuration/secure-traffic.md#configure-ssl-verify" >}}).{{</call-out>}}
16-
17-
3. Reload NGINX:
15+
1. Reload NGINX:
1816
1917
``` bash
2018
systemctl reload nginx
2119
```
20+
21+
{{<call-out "note" "If you’re using self-signed certificates" >}}
22+
If you’re using self-signed certificates with NGINX Instance Manager,
23+
see [Configure SSL verification for self-signed certificates]({{< ref "nim/system-configuration/secure-traffic.md#configure-ssl-verify" >}}) for additional steps.
24+
{{</call-out>}}

content/includes/licensing-and-reporting/custom-paths-jwt.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
docs:
33
---
44

5-
If you plan to use a custom path for the license file, note that **custom paths won’t work until after the R33 upgrade**. You’ll need to create a placeholder file at `/etc/nginx/license.jwt` or `/usr/local/etc/nginx/license.jwt` on FreeBSD before upgrading.
5+
If you’re upgrading from NGINX Plus R32 or earlier to R33 or later and plan to use a custom path for the license file, note that the custom path isn’t recognized until after the upgrade. You must first create a placeholder file at `/etc/nginx/license.jwt` (or `/usr/local/etc/nginx/license.jwt` on FreeBSD).
66

7-
1. **Before upgrading**: Create the placeholder file by running:
7+
1. **Before upgrading**: Create the placeholder file:
88

99
```bash
1010
touch /etc/nginx/license.jwt
1111
```
1212

13-
2. **After upgrading**: Update the [`license_token`](https://nginx.org/en/docs/ngx_mgmt_module.html#license_token) directive in the NGINX configuration [`mgmt`](https://nginx.org/en/docs/ngx_mgmt_module.html) block to point to your custom path:
13+
1. **After upgrading**: Update the [`license_token`](https://nginx.org/en/docs/ngx_mgmt_module.html#license_token) directive in the [`mgmt`](https://nginx.org/en/docs/ngx_mgmt_module.html) block of the configuration to point to your custom path:
1414

1515
```nginx
1616
mgmt {

content/includes/licensing-and-reporting/deploy-jwt-with-csgs.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,22 @@ file:
33
- content/solutions/about-subscription-licenses.md
44
---
55

6-
1. In the NGINX One Console, go to **Manage > Config Sync Groups**, then select your group.
7-
8-
If you haven't created a Config Sync Group yet, see [Manage Config Sync Groups]({{< ref "/nginx-one/nginx-configs/config-sync-groups/manage-config-sync-groups.md" >}}) for setup instructions.
9-
2. Select the **Configuration** tab, then choose **Edit Configuration**.
10-
3. Select **Add File**, then choose **New Configuration File**.
11-
4. In the **File name** field, enter:
6+
7+
{{<call-out "note" "Before you begin">}}
8+
Before you deploy with a Config Sync Group, you need to create one in the NGINX One Console.
9+
If you haven’t created a group yet, see [Manage Config Sync Groups]({{< ref "/nginx-one/nginx-configs/config-sync-groups/manage-config-sync-groups.md" >}}) for instructions.
10+
{{</call-out>}}
11+
12+
1. In the NGINX One Console, go to **Manage > Config Sync Groups**, then select your group.
13+
14+
2. Open the **Configuration** tab and select **Edit Configuration**.
15+
16+
3. Select **Add File**, then choose **New Configuration File**.
17+
18+
4. In the **File name** field, enter the exact path:
1219
- On Linux: `/etc/nginx/license.jwt`
1320
- On FreeBSD: `/usr/local/etc/nginx/license.jwt`
14-
The name must be exact.
15-
5. Paste the contents of your JWT license file into the editor.
16-
6. Select **Next** to preview the diff, then **Save and Publish** to apply the update.
21+
22+
5. Paste the contents of your JWT license file into the editor.
23+
24+
6. Select **Next** to preview the changes, then choose **Save and Publish** to apply the update.

content/includes/licensing-and-reporting/log-location-and-monitoring.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
docs:
33
---
44

5-
Monitor the [NGINX error log](https://nginx.org/en/docs/ngx_core_module.html#error_log), typically located at `/var/log/nginx/error.log`, for subscription-related issues such as failed usage reports or approaching license expirations — to catch problems early and keep your subscription compliant.
5+
Monitor the [NGINX error log](https://nginx.org/en/docs/ngx_core_module.html#error_log), usually at `/var/log/nginx/error.log`, to identify subscription issues early. The log records problems such as failed usage reports or licenses that are about to expire. Check it regularly to avoid downtime and stay compliant.
66

7-
<br>
7+
You can also use the [license API endpoint](https://demo.nginx.com/api/9/license) to check license status programmatically. For details, see the [ngx_http_api_module docs](https://nginx.org/en/docs/http/ngx_http_api_module.html#def_nginx_license_object).
88

9-
Examples of subscription-related log entries include:
9+
Examples of log entries:
1010

11-
- **Failure to upload usage reports**:
11+
- **Failed usage reports:**
1212

1313
``` text
1414
[error] 36387#36387: server returned 500 for <fqdn>:<port> during usage report
@@ -17,17 +17,19 @@ Examples of subscription-related log entries include:
1717
[error] 38888#88: server returned 401 for <ip_address>:443 during usage report
1818
```
1919

20-
- **License approaching expiration**:
20+
- **License nearing expiration:**
2121

2222
``` text
2323
[warn] license will expire in 14 days
2424
```
2525

26-
- **License expiration**:
26+
- **License expired:**
2727

2828
``` text
2929
[alert] license expiry; grace period will end in 89 days
3030
[emerg] license expired
3131
```
3232

33-
{{< call-out "important" >}}When a license expires, NGINX Plus stops processing traffic.{{< /call-out >}}
33+
{{< call-out "important" "Important" >}}
34+
NGINX Plus stops processing traffic if the license has been expired for more than 90 days.
35+
{{< /call-out >}}

content/includes/licensing-and-reporting/reported-usage-data.md

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,39 @@
22
docs:
33
---
44

5-
NGINX Plus automatically sends usage data to F5 every hour by default. This data is sent as a `POST` request and includes details like how much traffic is processed and how long the instance has been running. Here's an example of the data that's sent:
5+
By default, NGINX Plus sends usage data to F5 every hour in a `POST` request. The report includes information such as traffic volume, runtime, and instance activity.
6+
7+
Here’s an example of a usage report:
68

79
```json
810
{
911
"version": "<nginx_version>",
1012
"uuid": "<nginx_uuid>",
11-
"nap": "<active/inactive>", // status of NGINX App Protect
13+
"nap": "<active/inactive>", // NGINX App Protect status
1214
"http": {
1315
"client": {
1416
"received": 0, // bytes received
15-
"sent": 0, // bytes sent
16-
"requests": 0 // number of HTTP requests processed
17+
"sent": 0, // bytes sent
18+
"requests": 0 // HTTP requests processed
1719
},
1820
"upstream": {
1921
"received": 0, // bytes received
20-
"sent": 0 // bytes sent
22+
"sent": 0 // bytes sent
2123
}
2224
},
2325
"stream": {
2426
"client": {
2527
"received": 0, // bytes received
26-
"sent": 0 // bytes sent
28+
"sent": 0 // bytes sent
2729
},
2830
"upstream": {
2931
"received": 0, // bytes received
30-
"sent": 0 // bytes sent
32+
"sent": 0 // bytes sent
3133
}
3234
},
33-
"workers": 0, // number of worker processes running
34-
"uptime": 0, // number of seconds the instance has been running
35-
"reloads": 0, // number of times the instance has been reloaded
36-
"start_time": "epoch", // start time of data collection for the report
37-
"end_time": "epoch" // end time of data collection for the report
38-
}
39-
```
35+
"workers": 0, // number of worker processes running
36+
"uptime": 0, // seconds the instance has been running
37+
"reloads": 0, // number of reloads
38+
"start_time": "epoch", // start of data collection
39+
"end_time": "epoch" // end of data collection
40+
}

content/solutions/_index.md

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,29 @@
11
---
2-
title: Subscription Licensing & Solutions
2+
title: Subscription licensing & solutions
33
nd-docs: null
44
toc: true
55
weight: 1
6+
nd-content-type: landing-page
7+
nd-landing-page: true
68
---
79

8-
This section provides information about managing subscription licenses for NGINX products. Learn about license requirements, how to handle common issues, and ensure compliance to keep systems running smoothly.
10+
## Subscription licensing
11+
12+
{{<card-section showAsCards="true" isFeaturedSection="true">}}
13+
{{<card title="Get started" titleUrl="about-subscription-licenses/getting-started/" icon="unplug" isFullSize="true">}}
14+
Learn how NGINX Plus subscription licensing works, what’s required, and how to set up your environment.
15+
{{</card >}}
16+
{{</card-section>}}
17+
18+
{{<card-section showAsCards="true" >}}
19+
{{<card title="Licensing workflows" titleUrl="about-subscription-licenses/nginx-plus-licensing-workflows/" icon="workflow" >}}
20+
View flowcharts that show license validation and usage reporting checks at startup, renewal, and during operation.
21+
{{</card>}}
22+
{{<card title="Instructional videos" titleUrl="about-subscription-licenses/instructional-videos/" icon="youtube" >}}
23+
Watch step-by-step videos on sending usage reports and installing or upgrading NGINX Plus.
24+
{{</ card >}}
25+
{{</card-section>}}
26+
27+
928

10-
### Topics in this section:
1129

12-
- [About subscription licenses]({{< ref "solutions/about-subscription-licenses.md" >}})

0 commit comments

Comments
 (0)