 <p>Alright, so I got to work by adding the following to the Drupal settings.php:</p> <pre><code>$conf['reverse_proxy'] = TRUE; $base_url = 'https://whatever-your-domain-is.com'; $conf['reverse_proxy_addresses'] = array('internal_nginx_proxy_ip'); $conf['reverse_proxy_header'] = 'HTTP_X_FORWARDED_FOR'; </code></pre> <p>This works for jwilder's <a href="https://github.com/jwilder/nginx-proxy" rel="nofollow">nginx-proxy</a> container(s) together with JrCs' <a href="https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion" rel="nofollow">letsencrypt companion</a> container. The nginx container is handling the HTTPS/SSL (certificates) and talks HTTP with the Drupal-container internally. The Drupal container only needs to be run with the 3 ENV VARS VIRTUAL_HOST, LETSENCRYPT_HOST, LETSENCRYPT_EMAIL for everything to be set up and work its magic.</p> <p>Only downside: The Drupal container's apache logs show the internal IP of the nginx proxy. But the nginx logs show the correct client IPs and Drupal apparently gets them right as well, so it's only a minor nuisance for me.</p> <p>I guess the additions to the settings.php should also be applicable to custom/manual setups.</p>