> This page is for Applications Protection.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.humansecurity.com/llms.txt.

# Ingress NGINX Controller with HUMAN Enforcer

## Ingress NGINX Controller with the Enforcer

> **Warning**
>
> The Kubernetes team [has deprecated Ingress NGINX,](https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/) and it will no longer receive new features or updates. As it is not longer supported, we recommend using the [NGINX Gateway Fabric with HUMAN Enforcer](/applications/nginx-gateway-fabric) instead.

`px-nginx-ingress-controller` image is based on Ingress NGINX Controller

* Supported architecture: **amd64**

DockerHub project page: [https://hub.docker.com/r/perimeterx/px-nginx-ingress-controller](https://hub.docker.com/r/perimeterx/px-nginx-ingress-controller)

Docker Pull Command: `docker pull perimeterx/px-nginx-ingress-controller:TAG`

Versioning schema: `px-nginx-ingress-controller:vX.X.X-Y.Y.Y-Z`

Where:

* `vX.X.X`: ingress-nginx version (ChangeLog: [https://github.com/kubernetes/ingress-nginx/releases/](https://github.com/kubernetes/ingress-nginx/releases/))
* `Y.Y.Y`: Nginx Enforcer version (ChangeLog: [https://docs.perimeterx.com/docs/whats-new-nginx](https://docs.perimeterx.com/docs/whats-new-nginx))
* `Z`: module configuration type (server or location)

Configuration types:

* `server` (preferred): should go to "server " section of nginx.conf.
* `location` (please avoid this type): should go to "location " section of nginx.conf.

The following line must be present at the top of `/etc/nginx/nginx.conf` file:

`thread_pool px_pool threads=10;`

Example of HELM command to install PerimeterX Ingress NGINX Controller with the Enforcer

`helm install nginx-ingress ingress-nginx/ingress-nginx --version <HELM CHART VERSION> --values px-values.xml`
(e.g.: `helm install nginx-ingress ingress-nginx/ingress-nginx --version 4.8.0 --values px-values.xml`)

Where `px-values.xml` is:

```yaml
controller:
    name: controller
    image:
      registry: docker.io
      image: perimeterx/px-nginx-ingress-controller
      tag: TAG
      digest: DIGEST
    config:
      server-snippet: |
        px_enabled on;
        px_appId "--REPLACE--";
        px_cookie_secret "--REPLACE--";
        px_auth_token "--REPLACE--";
        # add other PX related settings here
```

Both `TAG` and `DIGEST` can be found on [https://hub.docker.com/r/perimeterx/px-nginx-ingress-controller/tags](https://hub.docker.com/r/perimeterx/px-nginx-ingress-controller/tags) page.