RMsis can be configured to run behind a reverse proxy server like Nginx or Apache HTTP Server. Configuring reverse proxy server allows for running RMsis on non-standard HTTP/HTTPS port (such as 3060) and users will be able to access RMsis over standard HTTP/HTTPS as their traffic will be routed through the proxy.

This page describes how to integrate Apache HTTP Server with RMsis, utilising mod_proxy so that Apache operates as a reverse-proxy over HTTPS (You can use similar/ appropriate configuration if you are using Nginx). 

Target Audience :

Targeted audience for this document are users who want to

Prerequisites :

The following are the prerequisites for running RMsis behind a reverse proxy server :

A typical Reverse Proxy Configuration

If the above mentioned prerequisites are fulfilled, a typical reverse Proxy Configuration with JIRA and RMsis running on HTTP will look like : 

                                Figure 1 :  A typical Reverse Proxy Configuration

In the above image, the reverse proxy server is configured for the url https://jira.example.com , the JIRA server is configured for url . 

Link #1 : Client machine accessing reverse proxy server - https://jira.example.com

Link #2 : Reverse Proxy Server accessing JIRA Server :

Now, We need to configure links #3, and #5 (Link #4 is automatically created by RMsis).

Configure Reverse Proxy Server (for RMsis)

Apache uses Modules which can be enabled or disabled and are essentially plugins that change the functionality of the server .mod_proxy is an example of these modules. 

To configure mod_proxy for use with your Application, you need to use the ProxyPass and ProxyPassReverse directives in the Apache configuration file as follows:

ProxyPass /rm http://jira.example:3060/rm
ProxyPassReverse /rm http://jira.example:3060/rm

The above directives tell Apache HTTP Server to forward web requests of the form https://jira.example.com/rm to the Tomcat connector running on port 3060(in this case RMsis running under the context path /rm) on the same machine.

A detailed information for mod_proxy is available here : https://httpd.apache.org/docs/2.4/mod/mod_proxy.html

If you are using some other reverse proxy server (like Nginx), you can use similar configuration/ modules.

Sample Reverse Proxy Configuration for Apache :

If JIRA is running under the root context "/",then the sample reverse proxy configuration for both JIRA and RMsis servers would be:

NameVirtualHost *:443
<VirtualHost *:443>
    ServerName jira.example.com
    #The above link refers to Link #1 in Figure 1			
    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    SSLEngine On
    SSLCertificateFile /home/user/ssl/server.crt
    SSLCertificateKeyFile /home/user/ssl/server.key
    SSLCertificateChainFile /home/user/ssl/cabundle.crt

    #for RMsis Server
    ProxyPass /rm					
    ProxyPassReverse /rm
    #The above link refers to Link #3 in Figure 1

    #for JIRA Server
    ProxyPass /						
    ProxyPassReverse /
    #The above link refers to Link #2 in Figure 1
    <Location />
        Order allow,deny
        Allow from all

Note : The reverse proxy directives for RMsis should be written before the reverse proxy directives for JIRA in the Apache configuration file if JIRA is running under the root context / .

Configure RMsis Server :

The server configuration in RMsis will be :

The complete Reverse proxy configuration will look like :

                                   Figure 2 : Reverse Proxy Configuration

Link #1 : Client machine accessing reverse proxy server - https://jira.example.com

Link #2 : Reverse Proxy Server accessing JIRA Server :

Link #3 : Reverse Proxy Server accessing RMsis Server :

Link #4 : JIRA Server accessing RMsis Server : (here 42045 is an internal port selected automatically by RMsis. If this port is not available, RMsis will select a different port)

Link #5 : RMsis Server accessing JIRA Server :

Note : 

For this configuration to work correctly, reverse proxy should not be blocking access from 

Further references:

A guide to reverse proxy is available here: https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html