Esta pequeña guía nos permitira instalar Nginx en su ultima versión en un servidor con CentOS 6 bajo arquitectura de 64bit. Entre las ventajas que tiene compilar e instalar Nginx desde las fuentes es que podemos agregar/remover el soporte a modulos de 3eros así como también de los modulos principales, actualizar a la ultima versión, modificar valores por defecto, entre otros. Primero instalaremos los paquetes necesarios para compilar la ultima versión de nginx:
yum install gcc gcc-c++ make zlib zlib-devel pcre pcre-devel openssl openssl-devel -y
Luego descargaremos la ultima versión desde el sitio oficial de Nginx , al momento de escribir esta pequeña guía ha sido la versión 1.5.9, por lo que la descargamos, desempaquetamos y entramos dentro del directorio donde nos prepararemos para compilar:
wget -c http://nginx.org/download/nginx-1.5.9.tar.gz tar -xvzf nginx-1.5.9.tar.gz cd nginx-1.5.9
Ahora bien la parte divertidad, agregar el soporte a ciertos modulos deseados, para ello ejecutamos lo siguiente:
./configure \ --user=nginx \ --group=nginx \ --prefix=/etc/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/run/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/lib/nginx/body \ --http-proxy-temp-path=/var/lib/nginx/proxy \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ --http-scgi-temp-path=/var/lib/nginx/scgi \ --with-http_addition_module \ --with-http_sub_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_auth_request_module \ --with-ipv6 \ --with-pcre \ --with-file-aio
Una vez terminado de hacer ./configure
ejecutaremos make
y make install
para que posterior a esto, agregaremos el usuario nginx a nuestro CentOS de la siguiente forma:
useradd -r nginx
Crearemos los siguientes directorios, usados como temporales para los modulos cargados para nginx:
mkdir /var/run/nginx; mkdir /var/log/nginx mkdir -p /var/lib/nginx/{body,fastcgi,proxy,scgi,usgi,uwsgi}/
Comprobamos que nginx esta correctamente instalado:
nginx -v nginx version: nginx/1.5.9
Para arrancar los servicios podemos usar el init-script que he tomado de la versión compilada de Nginx para CentOS 6, para comodidad de muchos el script lo he subido a Gist Github, lo descargamos en /etc/init.d y le damos permisos de ejecución:
wget -O /etc/init.d/nginx https://gist.github.com/zokeber/8701803/raw/065c655ae90f45c05b3b681da7f049ead5a77fad/nginx-init chmod u+x /etc/init.d/nginx
Arrancamos los servicios ejecutando:
/etc/init.d/nginx start Starting nginx: [ OK ]
Agregamos los servicios al runlevel de CentOS 6:
chkconfig --add nginx chkconfig --level 345 nginx on
Si todo ha marchado bien, al ingresar por nuestra dirección ip / dominio, veremos el mensaje de bienvenida de nginx 1.5.9, es de recordar que toda la configuración se encuentra en el directorio /etc/nginx
. Un parametro importante para conocer la lista de modulos compilados es ejecutar nginx -V
. Hasta acá de momento, esta pequeña guía.