Nginx es un servidor web gratuito y de código abierto, también se puede utilizar como proxy inverso , equilibrador de carga HTTP , caché HTTP y proxy de correo . Nginx está disponible para todos los sistemas operativos similares a Unix y se publica bajo una licencia similar a BSD.
En el tutorial, aprenderemos cómo instalar la última versión de Ngnix en Ubuntu 18.04 LTS y Debian 9 Server,
Instalación de Nginx en Ubuntu 18.04 LTS/Debian 9
Los pasos de instalación de Nginx en OS Ubuntu 18.04 y Debian 9 son idénticos, ejecute los siguientes comandos uno tras otro desde la terminal,
[email protected]:~$ sudo apt update [email protected]:~$ sudo apt install nginx -y
Iniciar y habilitar el servicio Nginx
Ejecute los siguientes comandos para iniciar y habilitar el servicio nginx,
[email protected]:~$ sudo systemctl start nginx [email protected]:~$ sudo systemctl enable nginx Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable nginx [email protected]:~$
Use los siguientes comandos para verificar el estado del servicio ngnix,
[email protected]:~$ sudo systemctl status nginx [email protected]:~$ sudo systemctl is-active nginx
La salida de los comandos anteriores sería algo así como a continuación,
Permitir puertos Nginx (80 y 443) en el firewall del sistema operativo
En caso de que el firewall del sistema operativo esté habilitado y configurado en su servidor Ubuntu 18.04 y Debian 9, ejecute los siguientes comandos ufw para permitir el puerto 80 y 443,
[email protected]:~$ sudo ufw allow 80/tcp Rules updated Rules updated (v6) [email protected]:~$ sudo ufw allow 443/tcp Rules updated Rules updated (v6) [email protected]:~$
Ahora Verifique las reglas usando el siguiente comando,
[email protected]:~$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 80/tcp ALLOW IN Anywhere [ 2] 443/tcp ALLOW IN Anywhere [ 3] 22/tcp ALLOW IN Anywhere [ 4] 80/tcp (v6) ALLOW IN Anywhere (v6) [ 5] 443/tcp (v6) ALLOW IN Anywhere (v6) [ 6] 22/tcp (v6) ALLOW IN Anywhere (v6) [email protected]:~$
Una vez que haya terminado con los cambios anteriores, ¡verifiquemos la página de bienvenida de Nginx!
Abra su navegador web, escriba:http://{Su-Servidor-IP-Dirección}
Bloque de servidor/Host virtual en Nginx
En Apache Web Server tenemos el concepto de hosts virtuales donde podemos definir detalles de múltiples sitios web, de manera similar en Nginx tenemos bloques de servidor significa bloque para cada sitio web, veamos el bloque de servidor predeterminado (/etc/nginx/sites -disponible/predeterminado ) y luego crearemos el bloque del servidor de nuestro propio sitio,
[email protected]:~$ sudo vi /etc/nginx/sites-available/default
Defina su bloque de servidor personalizado
Supongamos que quiero crear un bloque de servidor personalizado para el servidor web www.linuxtechi.lan,
Cree una raíz de documento usando el siguiente comando,
[email protected]:~$ sudo mkdir /var/www/linuxtechi
Cree un index.html en la raíz del documento del servidor web,
[email protected]:~$ sudo vi /var/www/linuxtechi/index.html <!DOCTYPE html> <html> <head> <title>Welcome to LinuxTechi</title> </head> <body> <h1>Welcome to LinuxTechi</h1> <p>LinuxTechi Test Page running on NGINX Web Server - Ubuntu 18.04</p> </body> </html>
Ahora cree su bloque de servidor creando un archivo "linuxtechi.lan ” con el siguiente contenido en la carpeta /etc/nginx/sites-disponible
[email protected]:~$ sudo vi /etc/nginx/sites-available/linuxtechi.lan server { listen 80; root /var/www/linuxtechi; index index.html; server_name www.linuxtechi.lan; }
Para activar el bloqueo del servidor creado anteriormente, cree un enlace simbólico desde “/etc/nginx/sites-disponible/linuxtechi.lan ” a “/etc/nginx/sites-enabled ”
[email protected]:~$ sudo ln -s /etc/nginx/sites-available/linuxtechi.lan /etc/nginx/sites-enabled
Ahora reinicie su servicio nginx usando el siguiente comando,
[email protected]:~$ sudo systemctl restart nginx
192.168.0.107 www.linuxtechi.lan
Ahora acceda a su servidor web a través de la URL:http://{Web-Server-Name}
En mi caso, la URL es http://www.linuxtechi.lan
Habilite los certificados SSL para su servidor NGINX
A partir de ahora, nuestro servidor web nginx se ejecuta en el puerto 80 no seguro, para que el servidor web sea seguro, necesitamos instalar certificados SSL. Puede obtener los certificados SSL de fuentes confiables o también puede usar certificados autofirmados generados a través del comando openssl.
En este tutorial estoy generando los certificados para mi servidor web usando el comando openssl,
[email protected]:~$ sudo openssl req -x509 -days 703 -sha256 -newkey rsa:2048 -nodes -keyout /etc/ssl/private/linuxtechi.key -out /etc/ssl/certs/linuxtechi-cert.pem [sudo] password for pkumar: Generating a 2048 bit RSA private key ........................................................................ writing new private key to '/etc/ssl/private/linuxtechi.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:IN State or Province Name (full name) [Some-State]:Delhi Locality Name (eg, city) []:Delhi Organization Name (eg, company) [Internet Widgits Pty Ltd]:LinuxTechi Organizational Unit Name (eg, section) []:IT Common Name (e.g. server FQDN or YOUR name) []:www.linuxtechi.lan Email Address []:[email protected] [email protected]:~$
El comando anterior ha generado la clave privada con "linuxtechi.key ” y certificados con el nombre “linuxtechi-cert.pem “, estos certificados serán aplicables durante los próximos dos años.
Ahora actualice su bloque de servidor, agregue la clave y la ubicación del certificado y cambie el puerto del servidor web de 80 a 443,
[email protected]:~$ sudo vi /etc/nginx/sites-available/linuxtechi.lan server { listen 443 ssl; root /var/www/linuxtechi; index index.html; server_name www.linuxtechi.lan; ssl_certificate /etc/ssl/certs/linuxtechi-cert.pem; ssl_certificate_key /etc/ssl/private/linuxtechi.key; }
Reinicie el servicio nginx usando el siguiente comando,
[email protected]:~$ sudo systemctl restart nginx [email protected]:~$
Acceda a su servidor web en el protocolo https como,
https://www.linuxtechi.lan
Esto confirma que hemos habilitado con éxito los certificados autofirmados en nuestro servidor web Nginx y concluye el artículo. Si le gusta el artículo, comparta sus comentarios y comentarios en la sección de comentarios a continuación.