Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
doc:tec:net:web_nginx:inicio [2025/04/25 21:37] – borrado - editor externo (Fecha desconocida) 127.0.0.1doc:tec:net:web_nginx:inicio [2025/04/25 21:37] (actual) – ↷ Enlaces adaptados debido a una operación de mover fepg
Línea 1: Línea 1:
 +====== 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**. Cojo la máquina clonada del debian mínimo, que le he llamado ''deb9_web'', e instalo el servidor web NGINX
 +<code>
 +aptitude install nginx
 +</code>
 +
 +**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''.
 +<code>
 +# ifconfig
 +</code>
 +
 +Pero en Debian 9 el ''ifconfig'' ha desaparecido, a menos que instales las herramientas de red con
 +<code>
 +# apt-get install net-tools
 +</code>
 +
 +En su lugar debes ahora usar
 +<code>
 +ip address
 +</code>
 +o simplemente
 +<code>
 +ip a
 +</code>
 +
 +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:web_nginx:nginx01.png?nolink |}}
 +
 +**Comandos**. Desde la consola puedo parar el servicio del servidor web o reiniciarlo. Por ejemplo:
 +<code>
 +service nginx stop
 +</code>
 +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:
 +<code>
 +service nginx start
 +</code>
 +
 +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:
 +<code>
 +service nginx restart
 +</code>
 +\\ 
 +===== 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
 +<code>
 +/etc/nginx/sites-available/default
 +</code>
 +Entre otras cosas, la **carpeta raíz** del servidor web aparece como ''/var/www/html/'' dentro del bloque ''server{}'' en la línea:
 +<code>
 +root /var/www/html;
 +</code>
 +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: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:
 +<code>
 +<meta charset="utf-8">
 +</code>
 +Et voilá...
 +
 +{{ doc:tec:net: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
 +<code>
 +dpkg-reconfigure locales
 +</code>
 +Y luego mostrarla ejecutando
 +<code>
 +locale
 +</code>
 +{{ doc:tec:net:web_nginx:bart-simpson-utf8.gif?nolink |}}
 +\\ 
 +==== Usuarios y derechos ====
 +
 +Le echo un vistazo al fichero de configuración ''ngnix.conf''.
 +<code>
 +/etc/nginx/nginx.conf
 +</code>
 +  * En la primera linea aparece el usuario ''www-data'' con permisos
 +<code>
 +user www-data;
 +</code>
 +
 +Con la siguiente instrucción visualizamos los derechos y propietarios en toda la ruta especificada.
 +<code>
 +namei -l /var/www/html/*.*
 +</code>
 +  * 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.
 +\\