Flask Website lädt oft Ressourcen nicht?
Ausgangslage:
- Flask Backend über CGI deployed
- Alle genutzen Ressourcen (CSS, Images, Videos, etc.) werden über url_for() importiert
- CGI daher, weil es sich um einen gemieteten Strato Server handelt und dieser im "Hosting Basic" Paket nur CGI akzeptiert. (Wer andere Infos darüber hat, gerne her damit)
Problem:
- In 30% der Fälle lädt die Seite ohne Probleme, alle Inhalte werden korrekt geladen und angezeigt
- In 35% der Fälle lädt die Seite zwar (auch die JS Datei, die die Loading Page nach dem vollständigen Laden der Seite entfernt) aber es fehlen Videos im Hintergrund
- In weiteren 35% der Fälle wird der Loading Screen angezeigt, aber weder Bilder, Videos, CSS Dateien, noch die JS Datei, die den Loader entfernt, werden geladen, wodurch nur der Loader zu sehen ist.
Konsole schmeißt für jede Ressource den Fehlercode 500 aus
Error Log zeigt immer, immer wieder:
End of script output before headers: [NAME].cgi
Alle Dateien im Ordner cgi-bin, sprich alle Page relevanten Files haben die Permission 755
Ist der Server einfach manchmal überlastet? Und hat hier noch jemand Ideen, was ich noch versuchen kann?
Vielen Dank im Voraus!
2 Antworten
Ein paar mögliche Fehlerquellen, die mir einfallen:
1) Die Python-Dateien sollten in der ersten Zeile ein Shebang enthalten, welches auf den Python-Interpreter zeigt.
Für Strato wäre es folgendermaßen richtig:
#!/usr/bin/python3
2) Stelle sicher, dass du eine Universalzeichenkodierung wie UTF-8 für deine Skriptdateien benutzt. Mit dos2unix kannst du eine Konversion vornehmen.
3) Ein Server Timeout oder ein fehlender Response können diese Fehlermeldung ebenfalls verursachen. Möglicherweise kannst du dieses Verhalten in einer lokalen Testumgebung reproduzieren. Wenn ja, liegt das Problem mit größerer Wahrscheinlichkeit in deiner Anwendung.
So und so würde ich allerdings ebenso empfehlen, auf/zu dem System erst einmal nach Logs zu suchen.
SELinux, SUexec etc vielleicht schuld?
Schaue in die entsprechenden Error Logs! Nicht nur vom Apache ;)