Nginx Konfiguration¶

  • Sie müssen den folgenden Code in Ihre nginx Konfigurationsdatei einfügen.
  • Für die Konfiguration wird davon ausgegangen, dass die ownCloud Installation unter /var/www/ownCloud und //cloud.example.com abgelegt ist und, dass sie über http(s) abgerufen werden kann.
  • Stellen Sie server_name, root, ssl_certificate und ssl_certificate_key entsprechend Ihrer Installationsvorgaben ein.
  • Stellen Sie sicher, das die SSL-Zertifikate durch den Server lesbar sind (siehe auch unter Nginx HTTP SSL Modul Dokumentation).
upstream php-handler {
  server 127.0.0.1:9000;
  #server unix:/var/run/php5-fpm.sock;
  }

server {
  listen 80;
  server_name cloud.example.com;
  # enforce https
  return 301 https://$server_name$request_uri;
  }

server {
  listen 443 ssl;
  server_name cloud.example.com;

  ssl_certificate /etc/ssl/nginx/cloud.example.com.crt;
  ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;

  # Path to the root of your installation
  root /var/www/owncloud/;
  # set max upload size
  client_max_body_size 10G;
  fastcgi_buffers 64 4K;

  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/ /index.php;
   }

   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;
   }

   # Optional: set long EXPIRES header on static assets
   location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
       expires 30d;
       # Optional: Don't log access to assets
         access_log off;
   }

  }

Hinweis

Sie können ownCloud über das http-Protokoll ansprechen, aber wir empfehlen Ihnen dringend, SSL/TLS verwenden, um Ihren Server-Datenverkehr zu verschlüsseln und um die Benutzerlogins zu schützen, sowie die Daten während der Übertragung ebenfals zu verschlüsseln.

  • Entfernen Sie den Server Block mit der Adressumleitung
  • Ändern Sie listen 443 ssl in listen 80;
  • Entfernen Sie ssl_certificate und ssl_certificate_key.
  • Entfernen Sie fastcgi_params HTTPS on;

Hinweis

Wenn Sie effektiv die maximale Uploadgröße erhöhen wollen, müssen Sie auchin der Datei php-fpm configuration ( sowie die Regel unter /etc/php5/fpm/php.ini) anpassen und erhöhen den Wert unter upload_max_filesize und unter post_max_size entsprechend. Sie müssen php5-fpm und nginx neu starten um die Änderungen an den Diensten wirksam zu übernehmen und anzuwenden.

Hinweis

ownCloud bringt seine eigene owncloud/.htaccess Datei mit. Wenn Ihre PHP-fpm benutzt wird, darf die .htaccess nicht gelesen werden. Die PHP-Einstellungen werden verwendet, wenn eine PECL-Erweiterung installiert ist. Wenn PHP-fpm ohne die PECL-Erweiterung installiert wurde, müssen die Einstellungen und Berechtigungen in der festgelegt owncloud/.user.ini Datei entsprechend manuell festegelegt werden.