Currently CA only connects to a single Jupyter Notebook Server instance so in a production environment It may be necessary to ensure high availability/fault tolerance to ensure downtime is kept to a minimum. In order to achieve this its possible to leverage NGINX Reverse Proxy to failover Jupyter Notebook Servers in the event of such failures. So, the purpose of this article is to outline a step-by-step guide, based on a lab environment, to setup and configure a reverse proxy with Cognos Analytics 11.1.2+, NGINX and Jupyter Notebook Server.
OS: Centos 7.1
CA Server 11.1.2+ (roves1.fyre.ibm.com)
NGINX Server (roofer1.fyre.ibm.com/ 184.108.40.206)
Jupyter Notebook Server 1 – eggcup1.fyre.ibm.com/ 220.127.116.11
Jupyter Notebook Server 2 – CAJupyterServer1.fyre.ibm.com/ 18.104.22.168
Steps to install and configure NGINX
1. On the Centos Server run yum -y update
2. Create a repo file vim /etc/yum.repos.d/nginx.repo
3. Add the following lines:
4. Install nginx by executing yum -y install nginx
5. Check the installation by executing nginx -V
6. Start by executing nginx and then test by executing curl http://localhost
7. Edit the /etc/nginx/nginx.conf and add this section:
8. Save and restart nginx
9. Open CA Portal and navigate to Manage - Configuration - System - Environment. Add the NGINX reverse Proxy IP Address (or host)
10. Click "Apply"
Now, lets test the failover by stopping one of the upstream jupyter servers and capture its recovery:
Stop the docker containers by executing the command:
Refresh the browser and kernel reinitialized and connected successfully.
Appendix: Additional Information
NGINX Additional Proxy Config Settings
IBM Jupyter Server
Blog - Administration: How to setup Jupyter Notebook Server on Ubuntu 16+ for Cognos Analytics 11.1.2+