====== Servidor web NGNIX ======
{{ doc:tec:net:srv_web:nginx:nginx.png?nolink |}}
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**. Cojo la máquina clonada del debian mínimo, que le he llamado ''deb9_web'', e instalo el servidor web NGINX
aptitude install nginx
**Comprobación del funcionamiento**. Compruebo desde un navegador de internet que está funcionando, para ello debo 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 instales las herramientas de red con
# apt-get install net-tools
En su lugar debes ahora usar
ip address
o simplemente
ip a
Con ello obtengo la dirección IP del servidor web. Me voy al anfitrión, y como el adaptador de la máquina es tipo puente, desde mi ordenador puedo en un navegador de internet teclear la IP del servidor web y me aparece algo como así:
{{ doc:tec:net:srv_web:nginx:nginx01.png?nolink |}}
**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 voy a fijarme 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 echo 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;
Si voy a ella y edito el fichero ''html'' que está ahí, variaré la apariencia del mensaje de funcionamiento del servidor anterior.
{{ doc:tec:net:srv_web:nginx:nginx02.png?nolink |}}
Ups!!!. Si, falla el idioma de la página.
==== El idioma de mi sistema ====
La solución más rápida es añadir dentro de la cabecera, ''head'', del fichero html:
Et voilá...
{{ doc:tec:net:srv_web:nginx:nginx03.png?nolink |}}
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 recomiendo. Podemos especificarla si ejecutamos
dpkg-reconfigure locales
Y luego mostrarla ejecutando
locale
{{ doc:tec:net:srv_web:nginx:bart-simpson-utf8.gif?nolink |}}
==== Usuarios y derechos ====
Le echo 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 mi caso me 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.