cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Reverse proxy for Web Dashboards

franz_soengen
Inactive


Hi,

has anyone successfully put a reverse proxy in front of web dashboards?

We want to set up a reverse proxy on the same machine as the AppMon Server to deliver Web Dashboards on port 443.


The basic functionality of Web Dashboards is working fine, but some deeper detail views are constantly throwing HTTP 400s or 500s, e.g. the "Business analytics/Visits/Visits details" page loads fine, but a click on "show waterfall" produces a HTTP 400. Another example is the Button "PurePath Analytics" on a PurePath Detail page. Web Dashboards shows popup stating "An unknown error occured". Looking at the network connections in a browser dev tool we see:

10.10.1.1 - - [15/Jan/2018:13:11:43 +0100] "GET /rest/sessions/live/{APPNAME}/useractions/199739025|77|{APPNAME}/20180115104250_0.t0.session|16453 HTTP/1.1" 400 3540


What we tried so far:



  • Apache/2.4.16

  • loaded Apache modules: proxy proxy_http headers proxy_connect

  • we tried two different configs: one with a flexible RewriteRule
<VirtualHost *:443>
DocumentRoot "/srv/www/htdocs"
TransferLog /var/log/apache2/access_log
CustomLog /var/log/apache2/ssl_request_log ssl_combined
SSLProtocol all -SSLv2
SSLEngine on
SSLCipherSuite HIGH:MEDIUM
SSLCertificateFile /etc/apache2/ssl/apm.cer
SSLCertificateKeyFile /etc/apache2/ssl/key.key
SSLCertificateChainFile /etc/apache2/ssl/CA.cer

ProxyPreserveHost on
SSLProxyEngine on
ProxyRequests off
ProxyErrorOverride Off

RewriteEngine On
RewriteRule ^/(.*) https://internal.domain:9911/$1 [P]
ProxyPassReverse / https://internal.domain:9911/

<Proxy *>
Require all granted
Options none
</Proxy>
</VirtualHost>
  • and one standard proxy config:
<VirtualHost *:443>
DocumentRoot "/srv/www/htdocs"

TransferLog /var/log/apache2/access_log
CustomLog /var/log/apache2/ssl_request_log ssl_combined

SSLProtocol all -SSLv2
SSLEngine on
SSLCipherSuite HIGH:MEDIUM
SSLCertificateFile /etc/apache2/ssl/apm.cer
SSLCertificateKeyFile /etc/apache2/ssl/key.key
SSLCertificateChainFile /etc/apache2/ssl/CA.cer

ProxyPreserveHost on
SSLProxyEngine on

ProxyRequests off
ProxyErrorOverride Off

ProxyPass / https://internal.domain:9911/
ProxyPassReverse / https://internal.domain:9911/
</VirtualHost>

But both of them yield the result above.

3 REPLIES 3

gary_spencer
Inactive

Hi Franz,

I have had this issue before. If you have open the network view perhaps you are noticing a rest call will fail with the proxy, and is successful should you try directly without the rproxy.

Please can you try adding nocanon after your ProxyPass, that resolved the same for myself.

RewriteRule
^/(.*) https://internal.address/$1
[L,R=301]

ProxyPass / http://appmonip:9911/ nocanon

I would also recommend set:

AllowEncodedSlashes Nodecode

Hope it helps,

Gary.

gabriel_casella
Dynatrace Pro
Dynatrace Pro

If it's just the case of using the web dashs at port 443,

why not set the port that Dynatrace Web runs to 443 (and adjust the permissions of the user that runs the dynatrace service to be able to use a lower (root) port)?

Take a look at the HTTPS Listen Port here.

Sincerely,

I agree, it is the simplest approach 🙂