How to process only first path element in the URL as the CGI executable

Frank Church vfclists at
Fri Oct 8 19:02:48 MSD 2010

I am using a FreePascal web module designed for apache cgi-bin  with nginx.

The CGI itself is called spidersample.cgi and contains modules such as
hello, bye etc.

With Apache when spidersample.cgi/hello is called, spidersample.cgi gets
executed, and passes control to the hello subroutine it contains.

With nginx instead of executing spidersample.cgi it treats
spidersample.cgi/hello as meaning a hello file in a spidersample.cgi
directory, and returns with a 404 error as there is no such directory.

I suspect it is an easily fixed problem with some rewrite rules in the
configuration file and it is posted below.


  server {
    listen          8118;
    server_name     localhost;
    access_log      /var/log/nginx/sysman_access.log;
    index index.html;
    root  /home/rchurch/Data/Lazarus/CgiApps;

        location ~ \.cgi$ {
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/tmp/sysman_cgi.sock;
                fastcgi_param  SCRIPT_FILENAME
                fastcgi_param  QUERY_STRING     $query_string;
                fastcgi_param  REQUEST_METHOD   $request_method;
                fastcgi_param  CONTENT_TYPE     $content_type;
                fastcgi_param  CONTENT_LENGTH   $content_length;


Frank Church

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list