Solución:
Nginx no tiene soporte CGI nativo (en su lugar, admite fastCGI). La solución típica para esto es ejecutar su script Perl como un proceso fastCGI y editar el archivo de configuración nginx para redirigir las solicitudes al proceso fastCGI. Esta es una solución bastante compleja si todo lo que desea hacer es ejecutar un script CGI.
¿Tiene que usar nginx para esta solución? Si todo lo que quiere hacer es ejecutar algunos scripts CGI de Perl, considere usar Apache o Lighttpd, ya que vienen con módulos CGI que procesarán sus scripts CGI de forma nativa y no requieren que el script se ejecute como un proceso separado. Para hacer esto, necesita instalar el servidor web y editar el archivo de configuración del servidor web para cargar el módulo CGI. Para Lighttpd, deberá agregar una línea en el archivo de configuración para habilitar el procesamiento de archivos CGI. Luego, coloque los archivos CGI en la carpeta cgi-bin.
Nginx es un servidor web. Necesita utilizar un servidor de aplicaciones para su tarea, como uWSGI, por ejemplo. Puede hablar con nginx usando su interfaz binaria nativa muy efectiva llamada uwsgi.
Instale otro servidor web (Apache, Lighttpd) que se ejecute en un puerto diferente. Luego, envíe su solicitud CGI al servidor web con nginx.
Solo necesita agregar esto a la configuración de nginx, después de instalar un servidor web en 8080
location /cgi-bin {
proxy_pass http://127.0.0.1:8080;
}
Eche un vistazo a Explicación de la directiva de ubicación de Nginx para obtener más detalles.