J'utilise un module web FreePascal conçu pour apache cgi-bin avec nginx.Quelles sont les règles d'emplacement correctes de nginx pour correspondre uniquement au premier élément de chemin dans l'URI à l'exécutable CGI?
Le CGI lui-même est appelé spidersample.cgi et contient des modules tels que bonjour, bye etc.
Avec Apache quand spidersample.cgi/bonjour est appelé, spidersample.cgi est exécuté et passe le contrôle au sous-programme Hello qu'il contient.
Avec nginx au lieu d'exécuter spidersample.cgi il traite spidersample.cgi/bonjour comme signifiant un fichier bonjour dans un répertoire de spidersample.cgi, et revient avec une erreur 404 comme il n'y a pas annuaire.
Je suppose que c'est un problème facilement résolu avec certaines règles de réécriture dans le fichier de configuration et il est posté ci-dessous.
========================================
serveur { écoute 8118; nom_serveur localhost; access_log /var/log/nginx/sysman_access.log; index index.html; root/home/rchurch/Données/Lazarus/CgiApps;
location ~ \.cgi$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/tmp/sysman_cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_n$
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
}
====================================== =============================