perl - Cómo ejecutar scripts CGI en Nginx
centos (5)
Tengo problemas para configurar las secuencias de comandos CGI que se ejecutarán en Nginx, hasta ahora he encontrado http://wiki.nginx.org/SimpleCGI esto, pero el problema es que no puedo hacer que las secuencias de comandos perl se ejecuten como servicio para que funcionen. se ejecuta en segundo plano e incluso en caso de reinicio comenzará a ejecutarse automáticamente
¿Tiene alguna idea? Estoy corriendo centos 5
He encontrado algunas soluciones here pero no pude integrar el código dado con http://wiki.nginx.org/SimpleCGI . Estoy completamente a cero en Perl, por favor ayúdenme Gracias
Encontré esto: https://github.com/ruudud/cgi Dice:
===
On Ubuntu: apt-get install nginx fcgiwrap
On Arch: pacman -S nginx fcgiwrap
Example Nginx config (Ubuntu: /etc/nginx/sites-enabled/default):
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/access.log;
location / {
root /srv/static;
autoindex on;
index index.html index.htm;
}
location ~ ^/cgi {
root /srv/my_cgi_app;
rewrite ^/cgi/(.*) /$1 break;
include fastcgi_params;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME /srv/my_cgi_app$fastcgi_script_name;
}
}
Cambie las líneas raíz y fastcgi_param a un directorio que contenga scripts CGI, por ejemplo, cgi-bin / dir en este repositorio.
Si eres un fanático del control y ejecutas fcgiwrap manualmente, asegúrate de cambiar fastcgi_pass en consecuencia. La ruta que se muestra en el ejemplo es la predeterminada en Ubuntu cuando se usa la configuración fcgiwrap lista para usar.
===
Estoy a punto de probarlo.
Encontré que este truco usando FastCGI es un poco mejor que ejecutar otro servidor web. http://nginxlibrary.com/perl-fastcgi/
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;
}
Echa un vistazo a la directiva de ubicación Nginx explicada para más detalles.
Nginx no tiene soporte CGI nativo (en su lugar es compatible con 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 quiere hacer es ejecutar un script CGI.
¿Tienes que usar nginx para esta solución? Si todo lo que desea 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 ponga los archivos CGI en la carpeta cgi-bin.