Why does the OPSWAT ICAP NGINX module fail to install or load on a custom-compiled NGINX build?

Symptoms

When attempting to install the OPSWAT ICAP NGINX module RPM, the installation fails with a package dependency similar to the following:

Copy

If the module is then extracted manually from the RPM and added to the NGINX configuration using:

Copy

NGINX validation or reload fails with an error similar to:

Copy

Cause

This issue occurs when the OPSWAT NGINX ICAP module RPM is installed on a system where NGINX was not installed from the matching RPM package, but was instead compiled manually from source. In this case, the RPM dependency check fails, and even if the module shared object (.so) is extracted manually, NGINX may still reject it because the module is not binary-compatible with the running NGINX build.

The not binary compatible error occurs because the OPSWAT module is built with --with-compat, which enables a relaxed signature check, NGINX build was not compiled with --with-compat. As a result, NGINX enforce a strict build-signature match that the custom build flags did not satisfy. Recompiling NGINX with --with-compat is the supported approach for custom or binary NGINX builds.

Resolution

To load the OPSWAT dynamic module successfully on a custom-built NGINX installation, recompile NGINX with the same custom prefixes and include the --with-compat option.

  1. Rebuild NGINX with compatibility support enabled.
Copy
  1. Download the OPSWAT NGINX module RPM from the OPSWAT portal that matches your NGINX version and operating system.
  2. Extract the module shared object from the RPM.
Copy
  1. Copy the module into the NGINX modules directory and set permissions.
Copy
  1. Add the module directive to the NGINX configuration.
Copy
  1. Validate the configuration.
Copy

If the NGINX binary and the OPSWAT module are compatible, the configuration test should complete successfully.

When using dynamic NGINX modules in a custom build, preserve the original configure arguments and add only --with-compat unless you intentionally need other changes. Unnecessary build differences can introduce additional compatibility problems.

  • The module package version must match the installed NGINX version.
  • If your custom NGINX build differs significantly from the expected vendor build, recompiling with --with-compat may still not be sufficient in every case.
  • Installing the RPM directly is only expected to work when the required NGINX RPM dependency is present on the system.

If Further Assistance is required, please proceed to log a support case or chat with our support engineer.

VariableType to search · ESC to discard
GlossaryType to search · ESC to discard
InsertType to search · ESC to discard
No matches