====== Servidor web NGNIX ====== {{ doc:tec:net: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** * 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í: {{ doc:tec:net: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 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 ''Ñ''. {{ doc:tec:net:web_nginx:nginx02.png?nolink |}} 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: Et voilá... {{ doc:tec:net:web_nginx:nginx03.png?nolink |}} **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 {{ doc:tec:net:web_nginx:bart-simpson-utf8.gif?nolink |}} \\ ==== 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. \\