
Eu sirvo php
arquivos executáveis via nginx
. Assim, separo pela extensão da URL da solicitação 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;
}
Com PHP
, o script a ser executado possui .php
extensão; mas para arquivos executáveis, .hello.c
é o script original e seu executável compilado é hello
o arquivo.
Preciso executar o hello
arquivo ao visitar o https://example.com/hello.c
.
Existe alguma diretiva no nginx em vez de $fastcgi_script_name
obter o nome do script sem extensão?
Responder1
Capture-o no local.
Por exemplo:
location ~ ^(.*)\.c$ {
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_index index;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
}