J’ai un script WSGI monté sur /app
. Si je demande /app/resource
, j’obtiens une réponse correcte. Mais je reçois également une entrée dans mon journal des erreurs comme si j’avais demandé /resource
. Qu’est-ce qui pourrait causer ça?
J’ai une application Flask déployée avec Apache 2.4 + mod_wsgi sur AWS EC2:
/my/app/path
app.wsgi
trouve dans /var/www/wsgi
et pointe vers /my/app/path
www.website.com
pointe vers le script WSGI: WSGIScriptAlias /app /var/www/wsgi/app.wsgi
Lorsque je reçois www.website.com/app/some_resource/...
, je reçois la réponse attendue pour cette ressource avec le code 200
.
Cependant, lorsque je vérifie les journaux d’erreur Apache, je trouve de nombreuses entrées pour les demandes refusées, par exemple:
[authz_core:error] [pid XXXXX] [client XXXXX] XXXXX: client denied by server configuration: /var/www/html/some_resource
Les erreurs consignées correspondent à 1 pour 1 avec les demandes qui, comme indiqué, reviennent 200
.
Maintenant, /var/www/html
est le DocumentRoot par défaut, mais la demande est envoyée à l’emplacement /app
et est correctement transmise et gérée par l’application WSGI via la directive alias.
Et donc: Pourquoi pourrais-je trouver ces entrées dans mes journaux d’erreurs, dans lesquels le chemin d’access /app
est supprimé, et le chemin d’access de la ressource ajouté directement (et correctement refusé) à la racine?
Pour répondre aux suggestions de Graham dans les commentaires:
Un collègue me dit qu’il a rencontré le même problème sur les instances AWS EC2.