7 Jahre her Linux Serverdienste Blog
Wer eine DiskStation von Synology besitzt kann über eine zusätzliche App (“Web Station”) Websites auf seinem NAS hosten. Das funktioniert soweit auch ganz gut. Allerdings gibt es bei einigen Anwendungen Probleme mit einem Timeout.
Ich hoste auf meinem NAS eine Nextcloud Instanz auf einem Apache 2.4 mit PHP 7.0. Sobald ich den integriertem Updater benutzen möchte, um die Version zu aktualisieren, bekomme ich spätestens dann eine Fehlermeldung, wenn während der Prozedur ein Backup erstellt wird. Dieser Vorgang dauert nämlich etwas und nach exakt einer Minute kommt es zum Timeout.
Die Ursache liegt darin, dass die Diskstation ihren eigenen Webserver (nginx) als Reverse Proxy für den Webserver der Web Station schaltet. Dieser nginx hat per Default einen Timeout von 60s gesetzt. Dauert nun ein Vorgang auf dem Apache länger (wie das o.g. Backup) und liefert dieser daher nicht innerhalb von einer Minute eine Antwort, läuft der nginx in einen Timeout.
Mit Hilfe des Supports konnte ich das Problem lösen. Das Problem lag nicht darin, dass ich nicht wusste, wie es zu lösen ist. Es lag eher darin zu wissen, wo es zu lösen ist. Die Diskstation baut ihre Konfigurationen nämlich aus diversen Dateien bei jedem Diensteneustart neu zusammen. Für nginx muss folgende Datei (zumindest Stand jetzt, in der DSM DSM 6.1.5-15254) angepasst werden:
/var/packages/WebStation/target/misc/VirtualHost-nginx.mustache
Dort gibt es zwei Abschnitte, einen für Apache 2.4, einen für Apache 2.2. In beiden muss der Parameter proxy_read_timeout
mit entsprechendem Wert (bei mir zehn Minuten) eingefügt werden:
{{#apache22}}
include proxy.conf;
proxy_read_timeout 600s;
location / {
proxy_pass http://{{listen}};
}
{{/apache22}}
{{#apache24}}
include proxy.conf;
proxy_read_timeout 600s;
location / {
proxy_pass http://{{listen}};
}
{{/apache24}}
Anschließend muss der Dienst noch mittels sudo synoservicectl --restart nginx
neu gestartet werden.
Diese manuelle Änderung wird überschrieben, sobald die Web Station App aktualisiert wird. Man muss diese Prozedur also nach jedem Update wiederholen.
DiskStation DSM nginx Reverse Proxy synology Web Station