views:

18

answers:

0

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  $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;
    }

}

==================================================================