Nginx es uno de los servidores para páginas web, tanto estáticas como dinámicas, que mejor resultado ofrecen, especialmente en páginas web con un gran número de visitas. Aunque de cara a los usuarios apenas hay diferencias entre utilizar un servidor u otro, de cara a los administradores web, una de las características más allá del rendimiento y la forma de trabajar con procesos es la configuración.
Nginx se caracteriza por ser un servidor de páginas web que se configura de forma modular, algo que en algunos aspectos puede dificultar la configuración del servidor web pero que, a su vez, permite que esta sea mucho más sencilla de interpretar, pudiendo separar la configuración en varios ficheros independientes y cargarlos en el fichero de configuración principal para que todos funcione como uno solo. En este manual vamos a explicar el funcionamiento de este servidor para páginas web estáticas. Más adelante veremos cómo configurarlo para procesar webs dinámicas con PHP.
Cómo instalar y controlar el demonio Nginx
Lo primero que tenemos que hacer para utilizar Nginx es instalarlo en nuestro sistema. Para ello, lo primero que debemos hacer es teclear en nuestro terminal:
Si utilizamos una distribución basada en Debian:
- apt-get install nginx
Si utilizamos una distribución basada en Red Hat:
- yum install nginx
Una vez finalice la instalación de Nginx ya tendremos el demonio funcionando, listo para empezar a cargar nuestras webs. Podemos controlar fácilmente el demonio del servidor web con los siguientes comandos:
- service nginx start | stop | restart -> Para iniciar, parar o reiniciar el servicio o demonio.
- service nginx configtest | reload -> Para probar una configuración o recargarla después de hacer cambios en el servidor.
- service nginx status -> Para poder conocer el estado del servidor en ese momento.
Cómo configurar Nginx
Configuración básica
Una de las características de este servidor web es que permite configurar por separado el servidor y cada una de las páginas web que montemos en él. Por un lado, la configuración básica del servidor se encuentra en el fichero:
- /etc/nginx/nginx.conf
Dentro de este fichero vamos a poder configurar las funciones generales del servidor web, entre otros:
- El usuario que ejecutará el servidor.
- Número de procesos del servidor (según el número de núcleos de la CPU).
- El proceso maestro del servidor (pid)
- La ruta donde se guardarán los ficheros de log.
- Usuarios máximos conectados al servidor.
- Configuración http (tipos de ficheros, envío de datos, compresión Gzip, ruta de los servidores web, configuración del servidor de correo, etc).
Al final de este fichero, dentro del bloque http, podemos ver una línea por defecto llamada «include /etc/nginx/sites-enabled/*». Esta línea indica al servidor que debe cargar las configuraciones específicas de diferentes archivos y directorios, a fin de poder funcionar como «servidores virtuales» y permitir habilitar y deshabilitar configuraciones fácilmente sin tener que borrarlas.
En resumen, el fichero nginx.conf se encarga de ofrecer una configuración global del servidor, la cual se complementa con lo que vamos a ver a continuación. Configurar un servidor VPS es un proceso sencillo.
Cómo montar tu primera página web
Como hemos dicho, la configuración del servidor virtual que nos crea por defecto se encuentra en la ruta «/etc/nginx/sites-available/default».
Si editamos este archivo vamos a poder encontrar, entre otras funciones:
- Los puertos de escucha (por defecto, el 80).
- El directorio donde se almacena la web.
- El fichero por defecto al acceder a la web, por defecto, «index.html».
- Comportamiento en caso de error 404.
- Configuración de un servidor «virtual» basado en él.
- Configuración del HTTPS.
Toda la configuración de este fichero se «sobrescribirá» a la configuración general del servidor.
Tal como hemos podido ver en el fichero de configuración anterior, la web por defecto se encuentra en la ruta /usr/share/nginx/html. Si nos desplazamos hasta ella, podemos ver los siguientes archivos.
Por defecto, tal como se indica en el fichero de configuración anterior, al acceder a la web a través del puerto 80 se abrirá por defecto el fichero index.html. En caso de tener un servidor php asociado a Nginx (que veremos más adelante), el fichero que se abrirá por defecto será index.php.
Podemos abrir con «nano» el fichero «index.html», ver su contenido e incluso modificarlo o cambiarlo por otro para que muestre nuestra propia página web.
Prácticas y consejos útiles para Nginx
Con esto ya seremos capaces de montar y sencillo servidor http listo para alojar páginas estáticas. Resumiendo, algunos de los aspectos que debemos recordar a la hora de configurar nuestro servidor son:
- Debemos separar lo máximo posible las configuraciones.
- Es recomendable hacer una configuración por separado para cada servidor, aunque estas sean iguales.
- Debemos utilizar «include» para importar cada configuración al servidor Nginx.
- Los nombres de cada servidor deben utilizar un patrón claro y nombres fáciles de identificar.
Para cualquier duda o información adicional sobre el servidor web, también podemos consultar la completa documentación que nos ofrecen los responsables de Nginx a través de su página web principal.