21 jun 2017

Nginx - Instalacion y configuracion

Introduccion


Web Server Load Balancing with NGINX Plus

Nginx es uno de los servidores web más populares del mundo y es responsable de alojar algunos de los sitios más grandes y de mayor tráfico en Internet. Es más fácil de usar que Apache en la mayoría de los casos y puede usarse como un servidor web o un proxy inverso.

Wikipedia: "nginx (pronunciado en inglés “engine X”) es un servidor web/proxy inverso ligero de alto rendimiento y un proxy para protocolos de correo electrónico (IMAP/POP3).
Es software libre y de código abierto, licenciado bajo la Licencia BSD simplificada; también existe una versión comercial distribuida bajo el nombre de nginx plus.3 Es multiplataforma, por lo que corre en sistemas tipo Unix (GNU/Linux, BSD, Solaris, Mac OS X, etc.) y Windows.
El sistema es usado por una larga lista de sitios web conocidos,5 como: WordPress, Netflix, Hulu, GitHub, Ohloh, SourceForge, TorrentReactor y partes de Facebook (como el servidor de descarga de archivos zip pesados)."

Instalacion


Dentro de Ubuntu, disponemos de su paquete oficial, por lo que la instalacion se hace bastante sencilla.


1
2
sudo apt-get update
sudo apt-get install nginx

Ajuste el Firewall


No tenemos porque tenerlo activado, en un server de produccion entiendo que sí ;), pero para nuestras pruebas locales no haría falta.
En caso de tener el FW, lo configuramos así:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
sudo ufw app list

sudo ufw allow 'Nginx HTTP'

sudo ufw status


Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

En línea 1 sacamos la lista de reglas a aplicar.
Vemos en la línea 3 como aplicar a la parte de HTTP. Nos habrá salido también:

  • Nginx Full: Este perfil abre tanto el puerto 80 (tráfico web normal, sin cifrar) como el puerto 443 (tráfico cifrado TLS / SSL)
  • Nginx HTTP: Este perfil abre sólo el puerto 80 (normal, tráfico web no cifrado)
  • Nginx HTTPS: Este perfil abre sólo el puerto 443 (tráfico cifrado TLS / SSL)

En el status, ya podemos observar cómo queda configurado el trafico


Servicio de Nginx



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since mié 2017-06-21 22:51:45 CEST; 1min 17s ago
 Main PID: 6683 (nginx)
   CGroup: /system.slice/nginx.service
           ├─6683 nginx: master process /usr/sbin/nginx -g daemon on; master_pro
           ├─6684 nginx: worker process                           
           ├─6685 nginx: worker process                           
           ├─6686 nginx: worker process                           
           ├─6687 nginx: worker process                           
           ├─6688 nginx: worker process                           
           ├─6689 nginx: worker process                           
           ├─6690 nginx: worker process                           
           └─6691 nginx: worker process   

Los comandos para trabajar con Nginx son:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo systemctl stop nginx

sudo systemctl start nginx

sudo systemctl restart nginx

sudo systemctl reload nginx

sudo systemctl disable nginx

sudo systemctl enable nginx

Bastantes descriptivos todos ellos.

Estructura de Nginx


  • /etc/nginx/nginx.conf: El directorio de configuración de nginx. Todos los archivos de configuración de Nginx residen aquí.
  • /etc/nginx/nginx.conf: El archivo de configuración principal de Nginx. Esto se puede modificar para realizar cambios en la configuración global de Nginx.
  • /etc/nginx/sites-available: El directorio donde se pueden almacenar los "bloques de servidor" por sitio. Nginx no utilizará los archivos de configuración que se encuentren en este directorio a menos que estén vinculados al directorio sites-enabled (ver abajo). Normalmente, toda la configuración del bloque del servidor se realiza en este directorio y se habilita mediante la vinculación al otro directorio.
  • /etc/nginx/sites-enabled/: Se almacena el directorio donde están habilitados los "bloques de servidor" por sitio. Por lo general, estos se crean mediante la vinculación a los archivos de configuración que se encuentran en el directorio sites-available.
  • /etc/nginx/snippets: Este directorio contiene fragmentos de configuración que se pueden incluir en cualquier otro lugar de la configuración de Nginx. Los segmentos de configuración potencialmente repetibles son buenos candidatos para la refactorización en fragmentos.

Registros del Servidor



  • /var/log/nginx/access.log: Cada solicitud a su servidor web se registra en este archivo de registro a menos que Nginx esté configurado para hacerlo de otra manera.
  • /var/log/nginx/error.log: Cualquier error Nginx se registrará en este registro.

Conclusion


Como vemos, la instalación es bastante sencilla. En próximos posts, veremos más a fondo la configuración a aplicar para crear nuestro site.

Share This!



No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.