Por seus comentários adicionais, isso parece ser a maneira mais ideal, embora não seja uma configuração bonita.
server {
listen 80 default_server;
access_log /path/to/site/dir/logs/access.log;
error_log /path/to/site/dir/logs/error.log;
root /path/to/site/dir/webroot;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
try_files $uri @missing;
fastcgi_pass localhost:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /path/to/nginx/conf/fastcgi_params;
}
location @missing {
rewrite ^ /error/404 break;
fastcgi_pass localhost:9000;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
include /path/to/nginx/conf/fastcgi_params;
}
}