Nextcloud version: 16.0.3
Operating system and version: CentOS 7.7.1908 / Docker 19.03.2
Apache or nginx version: Not sure.
PHP version: 7.3.7
The issue you are facing:
Cannot access nextcloud through an nginx reverse proxy
Is this the first time you’ve seen this error? : Yes
Steps to replicate it:
I set up nextcloud on my docker host and had is accessible on the local network, but I cannot make it accessible from the web.
I have a docker container running the linuxserver/letsencrypt image with an nginx reverse proxy which has some other services accessible under their own subdomains. I made the recommended changes from their config files (below) to nextcloud’s configuration and now when I access it on the local IP address it redirects me to the domain and fails to load.
# assuming this container is called "letsencrypt", edit your nextcloud container's config # located at /config/www/nextcloud/config/config.php and add the following lines before the ");": 'trusted_proxies' => ['letsencrypt'], 'overwrite.cli.url' => 'https://nextcloud.your-domain.com/', 'overwritehost' => 'nextcloud.your-domain.com', 'overwriteprotocol' => 'https', # # Also don't forget to add your domain name to the trusted domains array. It should look somewhat like this: array ( 0 => '192.168.0.1:444', # This line may look different on your setup, don't modify it. 1 => 'nextcloud.your-domain.com', ),
When I try to load nextcloud.mydomain.tld my browser displays an nginx 502 bad gateway error, and the nginx log reads:
2019/10/13 14:37:41 [error] 364#364: 18 connect() failed (111: Connection refused) while connecting to upstream, client: 22.214.171.124, server: nextcloud., request: “GET / HTTP/2.0”, upstream: “https://172.18.0.7:443/”, host: “nextcloud.mydomain.tld”
The output of your Nextcloud log in Admin > Logging:
The output of your config.php file in
/path/to/nextcloud (make sure you remove any identifiable information!):
<?php $CONFIG = array ( 'htaccess.RewriteBase' => '/', 'memcache.local' => '\\OC\\Memcache\\APCu', 'apps_paths' => array ( 0 => array ( 'path' => '/var/www/html/apps', 'url' => '/apps', 'writable' => false, ), 1 => array ( 'path' => '/var/www/html/custom_apps', 'url' => '/custom_apps', 'writable' => true, ), ), 'passwordsalt' => 'REMOVED', 'secret' => 'REMOVED', 'trusted_domains' => array ( 0 => '192.168.0.130:8082', 1 => 'nextcloud.mydomain.tld', ), 'datadirectory' => '/var/www/html/data', 'dbtype' => 'mysql', 'version' => '126.96.36.199', 'overwrite.cli.url' => 'https://nextcloud.mydomain.tld/', 'dbname' => 'nextcloud', 'dbhost' => 'nextclouddb:3306', 'dbport' => '', 'dbtableprefix' => 'oc_', 'instanceid' => 'oc3gt3zfmmph', 'mysql.utf8mb4' => true, 'dbuser' => 'nextcloud', 'dbpassword' => 'REMOVED', 'installed' => true, 'maintenance' => false, 'theme' => '', 'loglevel' => 2, 'trusted_proxies' => ['letsencrypt'], 'overwritehost' => 'nextcloud.mydomain.tld', 'overwriteprotocol' => 'https', );
The output of your Apache/nginx/system log in
Docker image pipes these to /dev/stdout or /dev/stderr