
Sirvo php
archivos tanto ejecutables como nginx
. Por lo tanto, separo la URL de solicitud por la extensión como
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~ \.c$ {
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_index index;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
Con PHP
, el script a ejecutar tiene .php
extensión; pero para archivos ejecutables, .hello.c
es el script original y su ejecutable compilado es hello
el archivo.
Necesito ejecutar el hello
archivo cuando visito https://example.com/hello.c
.
¿Existe alguna directiva en nginx en lugar de $fastcgi_script_name
obtener el nombre del script sin extensión?
Respuesta1
Captúrelo en la ubicación.
Por ejemplo:
location ~ ^(.*)\.c$ {
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_index index;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
}