J'essaie de comprendre pourquoi cela se produit. Je n'ai jamais eu de problèmes de ce type sur ce serveur, je suis donc un peu déconcerté.
Le serveur est nginx + Apache 2.4 reverse proxy. Donc nginx j'ai ce proxy pass :
location ~ \.cgi$ {
try_files $uri =404;
gzip off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8181;
}
Ensuite, pour les domaines dans la configuration d'Apache, j'ai :
<VirtualHost *:8181>
# other stuff here
<Directory "/the/web/directory/*">
Options +ExecCGI +FollowSymLinks +MultiViews
AllowOverride AuthConfig
Require all granted
AddHandler cgi-script .cgi .pl
</Directory>
</VirtualHost>
Le domaine est activé et fonctionne normalement. Cependant, en développant un site pour quelqu'un, je viens de rencontrer une erreur bizarre.
De temps en temps, la page renvoie un message 404 :
mais le reste du temps, il fonctionne parfaitement. Dans ce cas, j'ai envoyé exactement les mêmes paramètres (je n'ai fait que soumettre à nouveau le formulaire). J'ai vérifié si le problème venait d'une requête AJAX, mais j'obtiens le même problème si j'ouvre l'URL dans un onglet et que j'appuie plusieurs fois sur "reload" pour tester.
Rien d'utile n'apparaît dans le fichier journal d'Apache :
authorization result of <RequireAny>: granted, referer: https://x.co.uk/contact.html
Je suis presque certain que l'erreur vient de la partie Apache, car la réponse pour le 404 est :
Not Found
The requested URL /cgi-bin/contact.cgi was not found on this server.
Apache/2.4.18 (Ubuntu) Server at x.co.uk Port 8181
Je ne sais pas très bien de quoi il s'agit. Des idées ?