User Tools

Site Tools


fastcgi_en_nginx_centos_6.x

Compilar e instalar cgiwrap para soportar FastCGI en Nginx (CentOS 6.X)

Dependencias para compilar / instalar Fcgiwrap en CentOS 6.x

yum groupinstall 'Development Tools'
# Se instala el repositorio EPEL: http://fedoraproject.org/wiki/EPEL/es
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install fcgi-devel

URL Fcgiwrap: http://nginx.localdomain.pl/wiki/FcgiWrap

wget  https://codeload.github.com/gnosek/fcgiwrap/legacy.tar.gz/master -O fcgiwrap.tar.gz
tar zxvf fcgiwrap.tar.gz
cd gnosek-fcgiwrap-66e7b7d
autoreconf -i
./configure
make
make install
yum install spawn-fcgi

Editar el fichero /etc/sysconfig/spawn-fcgi.

OPTIONS="-u nginx -g nginx -a 127.0.0.1 -p 9001 -P /var/run/spawn-fcgi.pid -- /usr/local/sbin/fcgiwrap"

Inicializamos el demonio e indicamos que arranque al inicio.

chkconfig spawn-fcgi on
service spawn-fcgi start

Instalar Nginx en Centos 6.X

Agregamos el repositorio creando el fichero /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/6/$basearch/
gpgcheck=0
enabled=1
yum install nginx

Configurar host en Nginx para usar FastCGI

server {
  listen   80;
  server_name  pollux.dominio localhost;
  root /var/www/static/cgi-bin;
#  access_log  /var/www/logs/example.com.access.log;
  location / {
      index  index.cgi;
  }
  location ~ \.pl|cgi|fcgi$ {
      try_files $uri =404;
      gzip off;
      fastcgi_pass  127.0.0.1:9001;
      fastcgi_index index.cgi;
      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      include /etc/nginx/fastcgi_params;
      }
}
service nginx start
chkconfig nginx on

NOTA: También se podría haber utilizado el fichero socket en vez del puerto (Mirar /etc/sysconfig/spawn-fcgi).

Un ejemplo muy simple para probar la activación de FastCGI en Nginx.

index.cgi
#!/bin/bash
 
echo "Content-type: text/html"
echo ""
 
echo '<html>'
echo '<head>'
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
echo '<title>Hola mundo</title>'
echo '</head>'
echo '<body>'
echo 'Hola mundo'
echo '</body>'
echo '</html>'
 
exit 0

Dada esta configuración, los ficheros CGI (Python, Perl, C,…) deben tener extensión .cgi y estar en /var/www/static/cgi-bin. Leer la web oficial para más información.

Ejemplo de URL: http://dominio/script.cgi

fastcgi_en_nginx_centos_6.x.txt · Last modified: 2020/12/25 22:57 by 127.0.0.1