How to run Hue with the Apache Server

11 December 2014 in Administration - 2 minutes read

Hue ships out of the box with the HTTP server CherryPy, but some users have expressed interest having Apache HTTP 2 serve Hue with mod_wsgi. Their motivation is that they are more familiar with Apache or have already several Apache instances deployed.

It turns out it’s pretty simple to do. It only requires a small script, a Hue configuration option, and a configuration block inside Apache. This post describes how to have Apache serve the static content and run the Python code of Hue.


This script (which was just added in desktop/core/desktop/ enables any Web server that speaks WSGI to launch Hue and route requests to it:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "desktop.settings")

\# This application object is used by the development server
\# as well as any WSGI server configured to use this file.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

The next step disables booting Hue from the runcpserver command. In Cloudera Manager, go to Hue > Configuration > Service-Wide > Advanced, and add the following to the hue safety valve:

If you are running Hue outside of Cloudera Manager, modify desktop/conf/hue.ini with:


The final step is to configure Apache to launch Hue by adding the following to the apache.conf:

WSGIScriptAlias / $HUE_PATH/desktop/core/src/desktop/
WSGIPythonPath $HUE_PATH/desktop/core/src/desktop:$HUE_PATH/build/env/lib/python2.7/site-packages
WSGIDaemonProcess $HOSTNAME home=$HUE_PATH python-path=$HUE_PATH/desktop/core/src/desktop:$HUE_PATH/build/env/lib/python2.7/site-packages threads=30


Order Deny,Allow

\# If apache 2.4
Require all granted

\# otherwise
\# Allow from all

\# Some systems, like Redhat, lock down /var/run, so you may need to change where to store the socket with:
\# WSGISocketPrefix run/wsgi



Where $HOSTNAME should be the hostname of the machine running Hue, and $HUE_PATH is where Hue is installed. If you’re using Cloudera Manager, by default it should be either /usr/lib/hue for a package install, or /opt/cloudera/parcels/CDH/lib/hue for a parcel install.


Have any questions? Feel free to contact us on hue-user or @gethue!

comments powered by Disqus

More recent stories

10 February 2020
The Hue SQL Query Experience for your Data Warehouse
Read More
28 January 2020
10 years of Data Querying Experience Evolution with Hue
Read More
05 December 2019
Hue 4.6 and its improvements are out!
Read More