EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB486896: How to configure Strategy Web JSP with Apache Tomcat and HTTP Server


Zhanghao Zhan

Cloud Support Engineer II • MicroStrategy


This article describes the optional use of Apache HTTP Server, in conjunction with the standard Strategy installation of Apache Tomcat. This applies equally to both on-premises installations, as well as a Cloud implementation using the MCP reference architecture. If implemented, this impacts all web connectivity for Strategy, including Web, Library and REST API, and care must be taken to manage network connections and cookies.

Background:

In the 1990’s, when Strategy Web was first released, the standard approach for web and intelligence servers was implementation on separate physical machines, and this remains the official recommendation in the Strategy Installation and Configuration Guide: “Strategy Web should be installed on its own dedicated Web server machine.” 
https://www2.Strategy.com/producthelp/Current/InstallConfig/en-us/Content/Recommended_installation_location_and_example_depl.htm
A common practice was implementation of multiple web servers behind a load balancer, which together with clustered Intelligence servers, provided high availability (HA) service. 
This changed with the infrastructure behind MSTR Cloud, with the LAIO (Linux-All-In-One) reference architecture, which placed the intelligence server and the Web server on the same machine (often a virtual machine by this time).  This approach offered certain advantages in terms of networking, shared memory and simplicity.  Indeed, the LAIO approach does not preclude using a load balancer, as described in the MCP AWS architecture:
KB483966: Strategy Cloud Platform AWS Architecture
A more distributed web infrastructure with multiple specialized components, however, remains useful for many customers.  Apache HTTP Server, sometimes referred to by the UNIX “daemonized” acronym HTTPD is such a common component.  This was first released in 1995, and capable of hosting only static content, as opposed to dynamic Java servlet-based Apache Tomcat.

Architecture:

Generally, HTTPD will receive web traffic on standard ports of 80 or 443, depending upon the protocol in use.  Configured in /etc/httpd/conf/httpd.conf, this software is deployed in every MCP implementation of MSTR, even though it is not running by default.  HTTPD can be configured as a reverse proxy server, which serves as a layer to implement security policies, for example denying and allowing certain IP or CIDR ranges. 
https://httpd.apache.org/docs/current/mod/mod_proxy.html
Web traffic that passes these security rules is forwarded to the Tomcat connectors which are configured to receive this traffic.  Note, in such a configuration, it is possible to have encryption implemented between the user’s web browser and the HTTPD server, and then connect to Tomcat listening on an unencrypted port, often 8080.  Of course, if SSL/TLS encryption is required through the entire traffic flow, then it can be implemented on default port 8443 for Tomcat, and default ports 39321 and 39320 for the Intelligence server.
https://www2.microstrategy.com/producthelp/Current/SystemAdmin/WebHelp/Lang_1033/Content/SSL_TLS_Iserver_Web_Mobile.htm
The use of HTTPD also offers a mechanism to control the URL that is presented to the user, in addition to the Fully-Qualified-Domain-Name (FQDN) governed by the DNS servers, and the name of the webapp deployed within Apache Tomcat.  An example of this is described below.

/etc/httpd/extra.d/<server_name>.conf
ServerAlias <alternate-FQDN>
<Location /Strategy>
    ProxyPass        http://localhost:8080/Strategy
    ProxyPassReverse http://localhost:8080/Strategy
</Location>
<Location /report/common>
    ProxyPass        http://localhost:8080/common
    ProxyPassReverse http://localhost:8080/common
    ProxyPassReverseCookiePath /common /
</Location>

This configuration has HTTPD listening on port 443 (HTTPS) and forwarding the web traffic on port 8080 (HTTP) for two different MSTR web applications implemented in Apache Tomcat.  These are accessed at the following URLs:
https://simple-mstr-example.info/MicroStrategy/servlet/mstrWeb
https://simple-mstr-example.info/report/common/servlet/mstrWeb
In order for such a configuration to be compatible with Strategy Cookie requirements (see references below), the “ProxyPassReverseCookiePath” is required.  This path expectation can be viewed using the Developer Tools feature of Google Chrome, Network tab, response Headers, as seen in the screenshot below.  If this is not set properly, the login page may display, but after entering credentials, a login may be achieved temporarily (and it may be displayed as a session on the intelligence server), however the session cannot be maintained without the cookies, and another login page will be continuously displayed, no matter how many logins are executed.
Another configuration of HTTPD that requires the proper management of cookies is a load balancer, a basic example of which is shown below.  Note, this forwarding of web traffic might be within a single server (as in the first example above), or to different servers as part of a cluster of machines (as in the second example below).
ProxyPass /Strategy balancer://mycluster/Strategy stickysession=JSESSIONID nofailover=On
ProxyPassReverse /Strategy balancer://mycluster/Strategy
<Proxy balancer://mycluster/Strategy>
  BalancerMember http://<FQDN1>:8080 route=<server1> timeout=300 keepalive=On secret="<secret!>"
  BalancerMember http://<FQDN2>:8080 route=<server2> timeout=300 keepalive=On secret="<secret!>"
</Proxy>

Note: Strategy Web requires the the use of cookies:
https://www2.Strategy.com/producthelp/Current/SystemAdmin/WebHelp/Lang_1033/Content/Using_cookies.htm
https://community.strategy.com/article/Enable-Sticky-Session-in-Web-Application-Load-Balancer
KB38394: What are the cookies used in Strategy Web
KB484771: Handling user sessions in HyperWeb

ka0PW0000005iGXYAY_0EMPW0000093NcP.jpeg

 

THIRD PARTY SOFTWARE INSTALLATION WARNING:

The third-party product(s) discussed in this technical note is manufactured by vendors independent of Strategy. Strategy makes no warranty, express, implied or otherwise, regarding this product, including its performance or reliability.
 


Comment

0 comments

Details

Knowledge Article

Published:

August 14, 2024

Last Updated:

May 15, 2025