====== Vorbereitung nginx Webserver ======
Die Webserver-Software ''nginx'' ist sehr effizient und kann gut mit großen Teilnehmerzahlen umgehen.
PHP wird mittels ''php-fpm'' angebunden.
===== Verzeichnisschutz ======
Anders als bei Apache verarbeitet ''nginx'' keine ''.htaccess'' Dateien direkt im jeweiligen Verzeichnis.
Stattdessen muss der Zugriff auf die Verzeichnisse ''system'' und andere durch entsprechende Anweisungen in der Konfiguration eingeschränkt werden. Innerhalb des ''server'' Blocks sind das z.B.
# Forbidden directories
location ~ ^/(inc|lib|system)/ {
deny all;
return 403;
}
location ~ ^/files/(protected|upload|share)/ {
deny all;
return 403;
}
location ~ ^/download/(release|system|working)/ {
deny all;
return 403;
}
location ~ /\.ht {
deny all;
return 403;
}
# Use default favicon, so no entries will appear in the errorlog
location ~ ^/.*/favicon\.ico$ {
try_files /favicon.ico =404;
}
===== API konfigurieren =====
Damit die Rest API nicht nur über ''admin/api.php?v1'' aufgerufen werden kann, sondern auch eine RFC-konforme URL ''admin/api/v1'' erlaubt, ist innerhalb des ''server'' Block folgende "Umleitung" auf die ''api.php'' erforderlich.
# Front Controller Setup for API
location ~ ^/admin/api/ {
try_files "" /admin/api.php$is_args$args;
}