General Guidelines

The following describes general requirements, considerations, and features for deploying the Splunk AppDynamics On-Premises Controller and App Agents with a reverse proxy.

  • Set the deep link JVM option, -Dappdynamics.controller.ui.deeplink.url, to the value of the Controller URL. Use either the hostname or IP address of the Controller host (if directly accessible to clients) or to the VIP for the Controller as exposed at the proxy in the following format:

    modifyJvmOptions add ‑Dappdynamics.controller.ui.deeplink.url=http[s]://controller.corp.example.com[:port]/controller

    Use the URI scheme (http or https), hostname and port number appropriate for your Controller. The Controller uses the deep link value to compose URLs it exposes in the UI.

  • If terminating SSL at the proxy, also set the following JVM options:

    CODE
    -Dappdynamics.controller.services.hostName=<external_DNS_hostname>
    -Dappdynamics.controller.services.port=<external_port_usually_443>
  • You should use the Enterprise Console's Controller Settings page to edit the JVM options to retain your settings. See Update Platform Configurations for more information.
  • If the proxy sits between monitored tiers in the application, make sure that the proxy passes through the custom header that Splunk AppDynamics adds for traffic correlation, singularity header. Most proxies pass through custom headers by default.
  • For App Agents, the Controller Host and Controller Port connection settings should point to the VIP or hostname and port exposed for the Controller at the reverse proxy. For details see Agent-to-Controller Connections.
  • If using SSL from the agent to the proxy, ensure that the security protocols used between the App Agent and proxy are compatible. See the compatibility table for the SSL protocol used by each version of the agent.
  • If the proxy (or another network device) needs to check for the availability of the Controller, it can use Controller REST resource at: http://<host>:<port>/controller/rest/serverstatus. If the Controller is active and if in high availability mode, is the primary, it returns an XML response similar to this one:

    CODE
    <serverstatus vendorid="" version="1">
    <available>true</available>
    <serverid/>
    <serverinfo>
    <vendorname>AppDynamics</vendorname>
    <productname>AppDynamics Application Performance Management</productname>
    <serverversion>003-008-000-000</serverversion>
    </serverinfo>
    </serverstatus>

    If the Controller is in standby mode, this resource returns a 503 response.

The following sections provide notes and sample configurations for a few specific types of proxies, including Nginx and Apache Web Server.