Was die Rechte betrifft, kannst Du hier sehr gut ableiten, welche Rechte die Verzeichnisse haben müssen.
Zudem ist es ein funktionierendes HowTo zur Einrichtung von SFTP, auf Deinem Server. In jedem Fall sollte man sich in der heutigen Zeit mit SFTP beschäftigen, eine sichere FTP-Variante gibt es zur Zeit nicht. 
Kommen wir nun zu einer Grundkonfiguration für nginx mit Contao 4! 
Mit dieser Grundkonfiguration solltest Du zunächst mal einen funktionierenden Webserver erstellen können!
Adressen für Webseiten und Pfade müssen gegebenenfalls an Deine Struktur angepasst werden.
Ein paar Optionen zur Absicherung des Webservers habe ich mit rein gepackt. Es gibt noch mehr Möglichkeiten, die hier aber zu weit führen würden und Dir gegebenenfalls selber aneignen solltest.
Warum es zu Deiner Fehlermeldung kommt, habe ich markiert. 
/etc/nging/nginx.conf
	Code:
	# Benutzer unter dem nginx läuft, meistens www-data
user www-data;
# hier die Anzahl der CPU-Kerne eintragen
worker_processes 4;
# wohin mit den Fehlermeldungen von nginx?
error_log        /var/log/nginx/error.log info;
pid /run/nginx.pid;
events {
        worker_connections 1024;
}
http {
        include      /etc/nginx/mime.types;
        default_type application/octet-stream;
        types_hash_max_size 2048;
        # logging ein wenig pimpen
        log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';
        access_log  /var/log/nginx/access.log main;
        # ein paar grundsätzliche Definitionen
	#
	# fehlerhafte Header einfach mal ignorieren
        ignore_invalid_headers  on;
	# wenn man keine Daten von Server zu Server transferieren möchte, kann man es auch abstellen
        sendfile off;
        # nginx-Version verstecken, geht keinen etwas an
        server_tokens           off;
	# auf dem gesamten System Symlinks aktivieren
	# kann man machen, muss man nicht 
        disable_symlinks off;
        # Kompression aktivieren und ein klein wenig Finetuning
        gzip              on;
        gzip_static       on;
        gzip_buffers      256 8k;
        gzip_comp_level   9;
        gzip_http_version 1.0;
        gzip_min_length   0;
        gzip_types        text/css text/javascript text/mathml text/plain text/xml application/x-javascript application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml;
        gzip_vary         on;
        gzip_disable      "MSIE [1-6]\.(?!.*SV1)";
        # allgemein gültige SSL-Konfiguration
	# wenn benötigt auskommentieren
        #ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        #ssl_prefer_server_ciphers on;
        # Wo sind die Konfigurationsdateien für vHosts zu finden?
        #include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}
#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       }
#
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}
 /etc/nginx/sites-anabled/domain.ltd.conf
	Code:
	# duplicate Content verhindern, in dem man domain.ltd nach www.domain.ltd direkt umleitet
# wenn benötigt auskommentieren
#server {
#       listen       80;
#       server_name  domain.ltd;
#       return       301 http://www.domain.ltd$request_uri;
#}
# wird benötigt, wenn man php5-fpm verwenden möchte
# Sockets erkläre ich an der Stelle nicht, ist aber performanter als über einen Port zu gehen
# taucht in der PHP-Aktivierung später wieder auf
# wenn benötigt auskommentieren
upstream fastcgi_backend {
	 # php5-fpm über Socket
#        server unix:/var/run/domain.ltd.sock;
	 # php5-fpm über Ports
	 server 127.0.0.1:9000;
        keepalive 64;
}
server {
	# Port auf dem nginx lauscht
        listen 80;
	# Festlegung der Adresse unter der der vHost erreichbar sein soll
        server_name     www.domain.ltd;
	# root-Verzeichnis festlegen
        root /var/www/html/domain.ltd/web;
	# index-Zuweisung
	# für Contao 4 zwingend app.php angeben
        index app.php index.php index.html index.htm;
	# Pfade müssen gegebenenfalls angepasst und Verzeichnisse erstellt werden
	# Rechte für FTP-Benutzer vergeben, damit man später auch löschen kann
	# oder man lässt das von logrotate erledigen 
        access_log /var/www/html/www.domain.ltd/logs/access.log;
        error_log /var/www/html/www.domain.ltd/logs/error.log;
	# nginx mitteilen, dass er Symlinks folgen soll
        disable_symlinks off;
        # Falls SSL verwendet wird, sollte man diesen Header setzen, damit der Browser beim erneuten Eintippen automatisch
        # auf die geischerte Variante springt.
        #add_header Strict-Transport-Security "max-age=31536000;";
        # https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options
        # Verhindert Click Jacking Angriffe
        add_header X-Frame-Options SAMEORIGIN;
        # Verbietet Content Sniffing
        add_header X-Content-Type-Options nosniff;
        # Falls ein User aus Versehen, den Schutz bei sich deaktiviert hat, kann man ihn hiermit wieder erzwingen
        add_header X-XSS-Protection "1; mode=block";
        # andere Header machen bei Contao keinen Sinn
        if ( $request_method !~ ^(GET|HEAD|POST)$ ) {
                return 404;
        }
        location / {
                try_files $uri $uri/ /app.php?$args;
		# ein wenig caching
                if (-f $request_filename) {
                        expires 30d;
                        break;
                }
                if (!-e $request_filename) {
                        rewrite ^(.*)\.html$ /app.php ;
                        expires 7d;
                }
        }
        # verhindert, dass bestimmte Dateien im Browser aufgerufen werden können
        # diese Dateien können Informationen enthalten, die keinen etwas angehen
	# ohne diese Deklaration würde ein Browser die Dateien im Klartext ausliefern
        location ~* \.(tpl|html5|xhtml)$ {
                deny all;
        }
        # PHP aktivieren und über php5-fpm schicken
	# hier findet man die upstream-Deklaration auch wieder
        location ~ [^/]\.php(/|$) {
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;
                if (!-f $document_root$fastcgi_script_name) {
                        return 404;
                }
                fastcgi_pass fastcgi_backend;
                fastcgi_index app.php;
                include fastcgi_params;
		
		# ein wenig Finetuning, sollte an eigene Bedürfnisse angepasst werden
                fastcgi_keep_conn on;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 256 4k;
                fastcgi_busy_buffers_size 256k;
                fastcgi_temp_file_write_size 256k;
        }
        location ~* .(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|wml|swf)$ {
                access_log off;
                log_not_found off;
                expires max;
                add_header Pragma public;
                add_header Cache-Control "public, must-revalidate, proxy-revalidate";
        }
        # Können sensible Daten enthalten, nginx verwertet sie nicht
        location ~ /\.ht {
                deny all;
        }
        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }
        # nicht unbedingt notwendig, schaden kann es aber auch nicht 
        location = /robots.txt {
                deny all;
                log_not_found off;
                access_log off;
        }
}
 Damit hast Du zumindest erst mal eine Konfiguration, die grundsätzlich mit der aktuellen nginx-Version 1.8.x funktionieren sollte!
Gegebenenfalls muss sie hier und da an Dein System angepasst werden, auch das solltest Du Dir erarbeiten. An einigen Stellen habe ich von Finetuning gesprochen, auch hier muss Du gegebenenfalls anpassen.
Zu gegebener Zeit solltest Du Dich in jedem Fall mit der Absicherung von nginx beschäftigen. Durch kleine Kniffe und Erweiterungen kann man den bösen Buben das Leben viel schwerer machen. Nginx ist da glücklicher Weise einfacher zu administrieren, als der große Häuptling. 