Bold BI deployment using Apache Reverse Proxy
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
- VM or Kubernetes cluster for installing Bold BI® (Windows, Linux, Docker, or Kubernetes).
- Internal network access from the Apache VM to the Bold BI® hosted resource.
- Linux VM for setting up the reverse proxy using Apache.
- (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:
- Windows: Install Bold BI on Windows
- Linux: Install Bold BI on Linux
- Docker: Install Bold BI on Docker
- 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
💡 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.