Nginx 502 bad gateway


Hello there

Im having the 502 bad gateway,
I followed this guide

php-gd php-curl php-mbstring letsencrypt

#get file sorted
cd /tmp
mkdir -p /var/www/owncloud
cp -R owncloud/* /var/www/owncloud
chown -R www-data: /var/www/owncloud

#setup database
mysql -p
CREATE USER ‘newuser’@‘localhost’ IDENTIFIED BY ‘password’;
GRANT ALL PRIVILEGES ON * . * TO ‘newuser’@‘localhost’;

#gen certs
letsencrypt certonly --standalone -d cloud.opengeek

#setup webserver
copy config
vi /etc/nginx/conf.d/

Changed the port of Apache to 8080 because it interfears with nginx port.

Nginx conf file;

upstream php-handler {
server unix:/var/run/php/php7.0-fpm.sock;

server {
listen 80;
server_name cloud;
return 301 $server_name$request_uri;

server {
listen 443 ssl;
server_name cloud.example;

ssl_certificate /etc/letsencrypt/live/;
ssl_certificate_key /etc/letsencrypt/live/;

Path to the root of your installation

root /var/www/owncloud/;

set max upload size

client_max_body_size 10G;
fastcgi_buffers 64 4K;

Disable gzip to avoid the removal of the ETag header

gzip off;

Uncomment if your server is build with the ngx_pagespeed module

This module is currently not supported.

#pagespeed off;

rewrite ^/caldav(.)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.
)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;

location = /robots.txt {
allow all;
log_not_found off;
access_log off;

location ~ ^/(?:.htaccess|data|config|db_structure.xml|README){
deny all;

location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

try_files $uri $uri/ =404;


location ~ .php(?:$|/) {
fastcgi_split_path_info ^(.+.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;

Adding the cache control header for js and css files

Make sure it is BELOW the location ~ .php(?:$|/) { block

location ~* .(?:css|js)$ {
add_header Cache-Control “public, max-age=7200”;
# Add headers to serve security related headers
add_header Strict-Transport-Security “max-age=15768000; includeSubDomains; preload;”;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options “SAMEORIGIN”;
add_header X-XSS-Protection “1; mode=block”;
add_header X-Robots-Tag none;
# Optional: Don’t log access to assets
access_log off;

Optional: Don’t log access to other assets

location ~* .(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;

I have no clue what is causing this 502
I dont know where to look :confused:


Hope you can help me out!



this looks to me like a nginx/php issue rather then ownCloud so i’m think its probably suggested to search for a solution outside of this forums. I did the following search:“nginx”+“band+gateway”

and already found quite a lot help with articles like: