Im Changelog von OwnCloud 8.0.3 ist zu lesen, dass X-Accel-Redirect unter Nginx erweitert wurde. Diese Funktion war zwischenzeitlich defekt und nicht benutzbar. Die Ankündigung nehme ich nun zum Anlass, eine kleine Howto zu diesem Feature zu schreiben.
X-Accel-Redirect erlaubt es statische Dateien direkt und ohne Umweg über PHP an den Client auszuliefern. Quasi gratis erhält man damit die Möglichkeit Downloads zu pausieren und später wieder aufzunehmen.
Wie X-Accel-Redirect im Nginx aktiviert wird, entnimmt man am besten dem Nginx-Wiki. Die Konfiguration in der nginx.conf beschränkt sich auf wenige Zeilen. In der PHP-Skript-Sektion muss MOD_X_ACCEL_REDIRECT_ENABLED eingeschaltet werden und ein Präfix vergeben werden:
location ~ \.php(?:$|/) { # ... fastcgi_param MOD_X_ACCEL_REDIRECT_ENABLED on; fastcgi_param MOD_X_ACCEL_REDIRECT_PREFIX /xaccel; # ... }
Nach der PHP-Sektion wird eine weitere Sektion angelegt, die alle mit dem Präfix gekennzeichneten Dateien als intern auszuliefern markiert:
location ^~ /xaccel { internal; alias /; }