⚙️ Engine Proxy Configuration
Configure proxy access when the GermainUX Engine Manager or its Engines cannot connect directly to Germain Enterprise or another required HTTP/HTTPS endpoint.
The Engine Manager and individual Engines run in separate JVMs. Their proxy settings must therefore be configured independently unless Relay Proxy Settings is enabled.
▶️ Before you begin
Obtain the following information from your network team:
|
Item |
|
|---|---|
|
1 |
Proxy hostname |
|
2 |
Proxy port |
|
3 |
Required protocol HTTP, HTTPS, or both |
|
4 |
Authentication requirements |
|
5 |
Hosts that must bypass the proxy |
|
6 |
TLS certificate or truststore requirements |
Also confirm whether the proxy permits the HTTP methods, request sizes, connection duration, and destinations required by GermainUX.
📚 Java proxy properties
Use the following JVM system properties.
🌐 HTTP proxy
-Dhttp.proxyHost=<proxy-host>
-Dhttp.proxyPort=<proxy-port>
Example:
-Dhttp.proxyHost=proxy.example.com
-Dhttp.proxyPort=8080
🔒 HTTPS proxy
-Dhttps.proxyHost=<proxy-host>
-Dhttps.proxyPort=<proxy-port>
Example:
-Dhttps.proxyHost=proxy.example.com
-Dhttps.proxyPort=8800
Configure both sets when the Engine must access HTTP and HTTPS destinations through different proxy listeners.
🖥️ Configure the Engine Manager
The Engine Manager uses its local startup or service configuration.
🇺🇸 Windows
Open:
ENGINE_HOME\bin\startEngineManager.bat
Add the required properties to VMARGS.
Example:
SET VMARGS=-Dgermain.jvm=%JAVA% ^
-Xms256m ^
-Xmx512m ^
-XX:+CrashOnOutOfMemoryError ^
-Dhttps.proxyHost=proxy.example.com ^
-Dhttps.proxyPort=8800
Keep VMARGS on one line if the script does not support Windows continuation characters.
If the Engine Manager runs as a Windows service, update the JVM arguments in the service definition used by that service. Editing startEngineManager.bat will not affect a service that starts from a different XML or wrapper configuration.
🐧 Linux
Open:
ENGINE_HOME/bin/startEngineManager.sh
Add the required proxy properties to the Engine Manager’s JVM arguments.
Example:
VMARGS="$VMARGS \
-Dhttps.proxyHost=proxy.example.com \
-Dhttps.proxyPort=8800"
If the Engine Manager runs through systemd, confirm whether the service invokes this script or defines its own Java command. Update the configuration actually used by the service.
🔄 Restart the Engine Manager
Restart the Engine Manager after changing its proxy configuration.
Windows:
Restart the Engine Manager from services.msc
Linux with systemd:
sudo systemctl restart <engine-manager-service>
Review:
ENGINE_HOME/logs/EngineManager.log
Confirm that it connects to Germain Enterprise successfully.
⚙️ Configure an individual Engine
Configure Engine-specific JVM proxy properties centrally through the Workspace.
-
Sign in to the GermainUX Workspace.
-
Open GermainUX Workspace -> Left Menu → Settings → Germain -> State → Engine.
-
Select the Engines view.
-
Find and select the required node and Engine.
-
Select Show Advanced.
-
Add the required proxy properties to the Engine’s JVM options.
JVM Options for GermainUX Engine -
Save the configuration.
-
Restart the Engine.
Older GermainUX versions may display this page under:
APM > APM State
📄 HTTP example
Add each option as a separate JVM property:
-Dhttp.proxyHost=proxy.example.com
-Dhttp.proxyPort=8080
🔐 HTTPS example
-Dhttps.proxyHost=proxy.example.com
-Dhttps.proxyPort=8800
The Engine must restart before the settings take effect.
🔗 Relay the Engine Manager proxy settings
To apply the Engine Manager’s proxy configuration automatically to its Engines:
-
Open the node configuration in the GermainUX Workspace.
-
Enable Relay Proxy Settings (Germain -> State → Engine).
-
Save the node configuration.
-
Restart the affected Engines.
-
Verify their effective process command lines and connectivity.
Use this option when the Engine Manager and all Engines on the node require the same proxy.
Configure Engines individually when:
|
Condition |
|---|
|
Different Engines require different proxies. |
|
Only selected Engines require proxy access. |
|
The Engine Manager connects directly but an Engine does not. |
|
Different monitored destinations have different network requirements. |
⛔ Configure proxy bypass
Some destinations—such as local services, internal databases, or private application endpoints—may need to bypass the proxy.
Standard Java properties include:
-Dhttp.nonProxyHosts=<hosts>
-Dhttps.nonProxyHosts=<hosts>
Example:
-Dhttp.nonProxyHosts="localhost|127.*|*.example.internal"
-Dhttps.nonProxyHosts="localhost|127.*|*.example.internal"
Confirm the required syntax and support for the Java version used by the Engine. In Windows batch files, special characters such as | may require quoting or escaping.
🔏 Proxy authentication
Do not place proxy passwords directly in scripts, JVM command lines, screenshots, or documentation. JVM arguments may be visible to users who can inspect running processes.
If the proxy requires authentication:
|
Recommendation |
|---|
|
Use the authentication mechanism supported by the Engine distribution. |
|
Store credentials through your organization’s approved secret-management process. |
|
Restrict access to service and configuration files. |
|
Confirm whether the proxy supports the authentication method used by Java. |
|
Contact GermainUX Support if the supplied Engine package requires additional authentication configuration. |
🛡️ TLS inspection
If the proxy intercepts HTTPS traffic, the Engine JVM must trust the certificate authority used to issue the proxy’s certificates.
When you see certificate errors such as:
PKIX path building failed
unable to find valid certification path
verify:
|
Item |
|---|
|
The proxy certificate chain |
|
The Java truststore used by the Engine Manager |
|
The truststore used by individual Engines |
|
Certificate validity dates |
|
Hostname matching |
Do not disable TLS certificate validation to work around trust errors.
✅ Validate the configuration
After restarting the affected processes, confirm that:
|
Check |
|---|
|
The Engine Manager connects to Germain Enterprise. |
|
The node heartbeat appears in Germain > State. |
|
Individual Engines start successfully. |
|
Monitoring components can reach their target endpoints. |
|
Direct internal connections bypass the proxy when configured. |
|
No proxy authentication or TLS errors appear in the logs. |
|
The effective Java command line contains the expected proxy properties. |
|
No duplicate or conflicting proxy settings exist. |
❗ Troubleshooting
🔧 Engine Manager connects, but an Engine does not
The Manager and Engine use separate JVMs. Configure the Engine’s JVM options or enable Relay Proxy Settings.
🔍 Engine connects directly instead of using the proxy
Check:
-
JVM property spelling and capitalization
-
Whether the correct process was restarted
-
Proxy-bypass patterns
-
Whether a service definition overrides the startup script
-
Whether the destination uses HTTP or HTTPS
🔁 Internal endpoints fail after enabling the proxy
Add the internal hosts to the proxy-bypass configuration and restart the affected process.
⛔ Proxy returns 407 Proxy Authentication Required
The proxy requires authentication that is missing, invalid, or unsupported. Confirm the authentication requirements with the network team and use the credential mechanism supported by the Engine distribution.
⚙️ Configuration changes are not applied
Verify that:
-
You changed the correct Engine or Engine Manager.
-
The service uses the edited startup file.
-
The configuration was saved.
-
The affected process restarted.
-
The effective JVM command line contains the new properties.
Component: Engine
Feature Availability: 2022.1 or later