Installing behind a reverse proxy - magicbug/Cloudlog GitHub Wiki

Apache https Reverse Proxy

The following example shows you how to configure an apache reverse proxy. This is useful in the case that you're hosting with a single external domain name and you wish to provide external access to Cloudlog along with other services.

The example configuration below exposes the external URL https://<external domain>/cloudlog which then proxies to http://<cloudlog server ip address>

Note: In this case the external server is https while the internal cloudlog server is http; It is also rewriting the /cloudlog folder as most Cloudlog instances will be installed in the default /var/www/html folder. Modify as required.

application/config/config.php

// Modify in the provided section for base_url config.php
if ($_SERVER['REMOTE_ADDR'] == '<proxy ip address>') {
  $config['base_url'] = 'https://<external domain>/cloudlog/';
} else {
  $config['base_url'] = 'http://<cloudlog server ip address>';
}

// Modify in the provided section at the end of config.php
$config['proxy_ips'] = '<proxy ip address>';

Apache2 proxy virtualhost

    ProxyPreserveHost Off
    ProxySourceAddress <proxy ip address>
    RequestHeader set X-Forwarded-Proto "https" early
    RequestHeader set  X-Forwarded-Host "<external domain>" early
    ProxyPass /cloudlog http://<cloudlog server ip address>
    ProxyPassReverse /cloudlog http://<cloudlog server ip address>
    ProxyPassReverseCookieDomain  "<cloudlog server ip address>"  "<external domain>"
    ProxyPassReverseCookiePath  "/"  "/cloudlog/"