Ich habe ein Setup mit Apache2 als Front-End-Server für mehrere Python-Apps, die von Gunicorn bereitgestellt werden . Mein Apache2-Setup mit mod_proxy sieht folgendermaßen aus:
<VirtualHost *:80>
ServerName example.com
UseCanonicalName On
ServerAdmin webmaster@localhost
LogLevel warn
CustomLog /var/log/apache2/example.com/access.log combined
ErrorLog /var/log/apache2/example.com/error.log
ServerSignature On
Alias /media/ /home/example/example.com/pysrc/project/media/
ProxyPass /media/ !
ProxyPass / http://127.0.0.1:4711/
ProxyPassReverse / http://127.0.0.1:4711/
ProxyPreserveHost On
ProxyErrorOverride Off
</VirtualHost>
Im Allgemeinen funktioniert dieses Setup ziemlich gut. Ich habe jedoch ein Problem: Wenn ich den Gunicorn-Prozess neu starte (dauert 2-5 Sekunden) und eine Anfrage von Apache vorliegt, schlägt diese Anfrage mit einem 503-Fehler fehl. So weit, ist es gut. Aber Apache gibt immer wieder 503 Fehler zurück, selbst nachdem der Gunicorn-Prozess wieder aufgenommen wurde. Die Bereitstellung von Inhalten vom Proxyserver wird erst nach einem vollständigen Neustart von Apache fortgesetzt.
Gibt es einen Weg, um dieses Verhalten zu umgehen?