Servidor web NGNIX

Nginx es un servidor HTTP de alto rendimiento, estable y con muy bajo consumo de recursos.

Su alto rendimiento se debe a que, a diferencia de Apache que utiliza threads (o procesos, depende cómo se lo configure), Nginx posee una arquitectura asincrónica mucho más escalable y basada en eventos, lo que permite utilizar pequeñas cantidades de memoria.

Instalación

Instalación de los paquetes

Cogemos una máquina con un Debian mínimo instalado, e instalamos el servidor web NGINX

aptitude install nginx

Siempre antes de instalar un paquete se recomienda actualizar todos los paquetes del sistema.

Comprobación del funcionamiento

Comprobamos desde un navegador de internet que está funcionando, para ello debemos tener en cuenta algunos comandos relativos a la red, en este caso ifconfig.

# ifconfig

Pero en Debian 9 el ifconfig ha desaparecido, a menos que instalemoss las herramientas de red con

# apt-get install net-tools

En su lugar debemos ahora usar

ip address

o simplemente

ip a

Con ello obtenemos la dirección IP del servidor web. Nos vamos a otro equipo de la misma red y en un navegador de internet teclear la IP del servidor web, debiendo aparecer algo como así:

Comandos

Desde la consola puedo parar el servicio del servidor web o reiniciarlo. Por ejemplo:

service nginx stop

para el servicio, de manera que después de ejecutarla si recargamos la página web del servidor nos dará un aviso de que no se puede acceder a ese sitio web.

Para iniciar el servicio:

service nginx start

Cuando cambiemos los ficheros de configuración del servidor web habrá que parar y luego volver a iniciar el servicio para que los cambios se tengan en cuenta. También lo podemos hacer con un solo comando:

service nginx restart

Configuración básica

Por ahora vamos a fijarnos básicamente en:

Directorio raíz del servidor web. Ahí es donde irá a buscar por defecto las páginas web.

Usuarios, grupos y derechos de los mismos para acceder y modificar páginas del servidor.

Cuestiones básicas de seguridad. Configuración de la página con el error 404.

Fichero configuración default

Le echamos un vistazo al fichero básico de configuración

/etc/nginx/sites-available/default

Entre otras cosas, la carpeta raíz del servidor web aparece como /var/www/html/ dentro del bloque server{} en la línea:

root /var/www/html;

Vamos a ella y editamos el fichero html que está ahí: Variaremos la apariencia del mensaje de funcionamiento del servidor anterior añadiendo caracteres propios de nuestro idioma como vocales acentuadas y la letra Ñ.

Ups!!!. Si, falla el idioma de la página.

El idioma del sistema

Configuración del idioma en el fichero html

La solución más rápida es añadir dentro de la cabecera, head, del fichero html:

<meta charset="utf-8">

Et voilá…

Configuración del idioma en el sistema operativo

Si esto no funcionase el problema puede ser debido a que no hemos escogido la codificación UTF-8 en nuestro sistema. Esta codificación es la que se recomienda. Podemos especificarla si ejecutamos

dpkg-reconfigure locales

Y luego mostrarla ejecutando

locale

Usuarios y derechos

Echamos un vistazo al fichero de configuración ngnix.conf.

/etc/nginx/nginx.conf

En la primera linea aparece el usuario www-data con permisos

user www-data;

Con la siguiente instrucción visualizamos los derechos y propietarios en toda la ruta especificada.

namei -l /var/www/html/*.*

En nuestro caso muestra que el propietario de todo es root, con derechos 755 en las carpetas y 644 en los ficheros. Los demás tienen derecho de lectura y ejecución en las carpetas y solo lectura en el fichero.