Articles in this section

Bold BI deployment using Apache Reverse Proxy

Published:

This article provides a universal guide to deploying Bold BI® in various environments (Windows, Linux, Docker, or Kubernetes) and exposing it securely and publicly via an Apache reverse proxy hosted on a Linux VM.

Prerequisites

  1. VM or Kubernetes cluster for installing Bold BI® (Windows, Linux, Docker, or Kubernetes).
  2. Internal network access from the Apache VM to the Bold BI® hosted resource.
  3. Linux VM for setting up the reverse proxy using Apache.
  4. (Optional) A domain and valid SSL certificate for secure access.

Setup and Deployment

Step 1: Install Bold BI® on Host Machine

Follow the appropriate guide:

  1. Windows: Install Bold BI on Windows
  2. Linux: Install Bold BI on Linux
  3. Docker: Install Bold BI on Docker
  4. Kubernetes: Install Bold BI on Kubernetes

For example, the Bold BI® application is configured with the following domain:

http://ip-address  or  https://host-url 

image.png

💡 Kubernetes Note

If Bold BI® is deployed on Kubernetes and you are using an Apache reverse proxy DNS in front of the NGINX Ingress Controller, register the reverse proxy DNS as an additional host alias in the ingress resource:

kubectl annotate ingress bold-ingress \
-n <your-namespace> \
nginx.ingress.kubernetes.io/server-alias="apache-bi-revtest.boldbidemo.com" \
--overwrite 

Step 2: Verify Reverse Proxy Connectivity

Verify that the Bold BI® application is reachable from the Apache server:

curl -I http://ip-address 

You should receive a valid HTTP response from the Bold BI® application.

If you didn’t receive any response, please check the network connectivity between the two VMs.

Step 3: Install Apache on Linux VM

sudo apt update
sudo apt install apache2 -y 

Verify:

sudo systemctl status apache2 

Step 4: Enable Required Modules

Apache reverse proxy requires mod_proxy and mod_proxy_http. Apache’s reverse proxy functionality is provided through these modules and uses ProxyPass / ProxyPassReverse directives.

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod headers
sudo a2enmod ssl
sudo a2enmod rewrite 

Restart Apache:

sudo systemctl restart apache2 

Step 5: Create Apache Virtual Host

Navigate to the Apache configuration directory:

cd /etc/apache2/sites-available

Remove any default Apache configuration files that may interfere with the reverse proxy setup.

Create a new configuration file (e.g., boldbi-apache.conf) for the Bold BI® application with the following settings. Ensure that you replace the placeholder with the actual public address of the Bold BI® application.

Apache Configuration (Without SSL)

<VirtualHost *:80>

ServerName example.com    # Replace the reverse proxy URL here

ProxyPreserveHost On

ProxyPass / http://ip-address/      # Replace with your machine/public address used for the Bold BI application
   ProxyPassReverse / http://ip-address/

RequestHeader set X-Forwarded-Host "%{HTTP_HOST}s"
   RequestHeader set X-Forwarded-Proto "http"
   RequestHeader set X-Forwarded-Port "80"
   RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
   RequestHeader set X-Real-IP "%{REMOTE_ADDR}s"

   ErrorLog ${APACHE_LOG_DIR}/boldbi-error.log
   CustomLog ${APACHE_LOG_DIR}/boldbi-access.log combined

</VirtualHost> 

Configure SSL

If you have an SSL certificate for your domain and need to configure the site with HTTPS, modify the configuration as shown below.

Apache Configuration (With SSL)

<VirtualHost *:443>
ServerName example.com     # Replace the reverse proxy URL here
SSLEngine On
SSLCertificateFile /path/to/certificate/file/domain.crt   
   SSLCertificateKeyFile /path/to/key/file/domain.key
ProxyPreserveHost On
ProxyPass / http://ip-address/      # Replace with your machine/public address used for the Bold BI application
   ProxyPassReverse / http://ip-address/
   RequestHeader set X-Forwarded-Host "%{HTTP_HOST}s"
   RequestHeader set X-Forwarded-Proto "https"
   RequestHeader set X-Forwarded-Port "443"
   RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
   RequestHeader set X-Real-IP "%{REMOTE_ADDR}s"
   ErrorLog ${APACHE_LOG_DIR}/boldbi-error.log
   CustomLog ${APACHE_LOG_DIR}/boldbi-access.log combined
</VirtualHost> 

SSL Configuration Changes

  • Replace example.com with your reverse proxy URL.
  • Define the path of the SSL certificate:
SSLCertificateFile /etc/ssl/domain.crt 
  • Specify the location of the SSL private key:
SSLCertificateKeyFile /etc/ssl/domain.key 

Step 6: Enable the Site Configuration

Enable the newly created Apache site:

sudo a2ensite boldbi-apache.conf 

Step 7: Test Configuration and Reload Apache

Check the Apache configuration syntax:

sudo apachectl configtest 

If the syntax is correct, the output should be:

Syntax OK 

Reload Apache:

sudo systemctl reload apache2 

Restart Apache:

sudo systemctl restart apache2 

Step 8: Access the Reverse Proxy URL to access the Bold BI® application

Now you can access the Bold BI® application through the Apache reverse proxy URL.

Additional References

Was this article useful?
Like
Dislike
Help us improve this page
Please provide feedback or comments
SJ
Written by Sarulatha Jagadesan
Updated:
Comments (0)
Access denied
Access denied