Kibana 4 as reverse proxy

Hi All,

Does anyone know how to configure apache to use kibana 4 as reverse proxy. Kibana 3 works perfectly fine but kibana 4 gives me an error. Unable to load "text!config" modules because of an unknown error apache

Anyone aware of this fix?

Regards
Niraj

What does the proxy portion of your Apache look like? Which Apache version? Does it work without the reverse proxy (i.e. if you head straight for port 5601)?

Number of fixes found in this article: reverse-proxy: Unable to load "text!config" modules because of an unknown error. · Issue #1653 · elastic/kibana · GitHub

I know they were using NGINX but if you setup Apache
correctly then it may help, just to add as well, I would recommend NGINX if you’re
just using it as a reverse proxy since NGINX is less resource heavy than
Apache. Apache is a full end web server as per design but originally NGINX was
just a RP.

Hi Magnusbaeck,

I am using apache with reverse proxy between two instances using balancer method. Here is my config.

Apache on web tier:

<VirtualHost *:443>
ServerName elk@xxx.com
ServerAdmin webmaster@localhost

Vhost docroot

DocumentRoot "/opt/kibana3/src"

Directories, there should at least be a declaration for /opt/kibana3/src

<Directory "/opt/kibana3/src">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all

Load additional static includes

Logging

ErrorLog "/var/log/apache2/ssl_error.log"
ServerSignature Off
CustomLog "/var/log/apache2/ssl_access.log" "%h %D %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i""

Proxy rules

ProxyRequests Off

ProxyPass /es balancer://elk-prod-01-es/
<Location /es>
ProxyPassReverse balancer://elk-prod-01-es/

ProxyPass /_plugin/marvel balancer://elk-prod-01-es/_plugin/marvel
<Location /_plugin/marvel>
ProxyPassReverse balancer://elk-prod-01-es/_plugin/marvel

ProxyPass /_plugin/head balancer://elk-prod-01-es/_plugin/head

<Location /_plugin/head>
ProxyPassReverse balancer://elk-prod-01-es/_plugin/head

ProxyPass /_plugin/bigdesk balancer://elk-prod-01-es/_plugin/bigdesk
<Location /_plugin/bigdesk>
ProxyPassReverse balancer://elk-prod-01-es/_plugin/bigdesk

Redirect rules

Redirect /marvel /_plugin/marvel
Redirect /head /_plugin/head
Redirect /bigdesk /_plugin/bigdsek

SSL directives

SSLEngine on
SSLCertificateFile "/etc/ssl/certs/elk.crt"
SSLCertificateKeyFile "/etc/ssl/private/elk.key"
SSLCACertificatePath "/etc/ssl/certs"
SSLCACertificateFile "/etc/ssl/certs/ca-certificates.crt"
SSLProtocol All -SSLv2 -SSLv3

Custom fragment

Configure SSL

SSLProxyEngine On

#Disable gzip for apache
SetEnv no-gzip 1

And the app tier has a rule to a proxy pass

ProxyPass /kibana http://localhost:5601/kibana
ProxyPassReverse /kibana http://localhost:5601/kibana

And yes if i directly use app tier's IP with port 5601 port i can access it without any pain.

Thanks for the help !

Regards
Niraj

ProxyPass /kibana http://localhost:5601/kibana
ProxyPassReverse /kibana http://localhost:5601/kibana

I think you want to have trailing slashes here, and more importantly no kibana directory on the right hand side:

ProxyPass /kibana/ http://localhost:5601/
ProxyPassReverse /kibana/ http://localhost:5601/

Without the trailing slashes, relative URLs tend to get screwed up. The debugging console of your browser will indicate such problems quite clearly.