High Availability for Bold BI® in a Linux Environment Using Azure Application Gateway
This article provides a comprehensive guide on configuring a high availability setup for the Bold BI® application in a Linux environment using Azure Application Gateway.
Prerequisites
Before proceeding, ensure that the following prerequisites are met:
-
Azure Virtual Linux Machines: Deploy multiple Azure Ubuntu virtual machines within the same virtual network, availability zone, and region. For guidance, refer to Creating a Linux Virtual Machine in Azure.
-
Azure NFS File Share: Set up an Azure NFS file share storage account. Instructions can be found in the NFS File Shares documentation.
-
Azure Application Gateway: Create an Azure Application Gateway with SSL. For detailed steps, see the Azure documentation. Initially, attach the load balancer to one of the virtual machines where the Bold BI® application will be installed.
Note: Ensure all resources are deployed in the same region, availability zone, and virtual network.
Steps to Configure High Availability
Step 1: Initial Setup
On the first Linux virtual machine, create the necessary directory using the following command:
sudo mkdir -p /var/www/bold-services/application/app_data
Step 2: Mount NFS File Share
Mount the NFS file share to the Linux virtual machine by following the instructions provided in the How to mount an NFS share documentation. Ensure that you mount the NFS volume to the following path:
/var/www/bold-services/application/app_data
Step 3: Deploy Bold BI® Application
Once the Azure Application Gateway is created with proper SSL, map the frontend IP with a custom domain (e.g., example.boldbi.com). To find the frontend IP configuration, navigate to the load balancer settings.
Once mapping done use the custom domain (http://example.com) as the host URL for the Bold BI® application.
Follow the steps outlined in the Bold BI® documentation to deploy the application on Ubuntu:
Step 4: Start Bold BI® Application
Once the Bold BI® application is deployed, start it using the public custom domain endpoint (e.g., example.boldbi.com) and complete the startup.
Step 5: Deploy the Bold BI® Application on Additional Machines
Follow Step 3 and deploy the Bold BI® application using the same application gateway load balancer custom domain as used for the first machine deployment.
Step 6: Clean Up App_Data and mount the NFS File Share
Navigate to the following directory on additional Bold BI® deployed machines and remove the contents of the app_data
folder:
sudo rm -r /var/www/bold-services/application/app_data/*
Once the files and folders are removed, mount the NFS file share to the same app_data
location for additional machines:
/var/www/bold-services/application/app_data
Once mounted, Restart all the service using the below command.
sudo systemctl restart bold-*
Step 7: Attach to Load Balancer
Attach all the additional deployed virtual machines to the load balancer already created Backend Pools for machine 1.
Note: It will display all the VMs you can add to the Backend Pools.
Step 8: Reverse Proxy Header Changes for All Bold BI® Deployed Machines
Navigate to the following location:
cd /etc/nginx/sites-available/boldbi-nginx-config
Replace the proxy_set_header
attribute value with $http_x_forwarded_proto
instead of $scheme
in the Bold BI® application nginx file for all service locations. Once changes are done, reload Nginx:
sudo nginx -s reload
Step 9: Access the Application
After attaching all machines to the load balancer Backend Pools, you can access the Bold BI® application through the load balancer’s public custom domain endpoint.
Conclusion
By adhering to these steps, you can establish a high availability setup for the Bold BI® application on a Linux platform using Azure Application Gateway. This ensures uninterrupted availability and efficient management of heavy traffic.