Articles

Cómo Instalar Y Configurar un Servidor Nginx Por Primera Vez

Nginx es uno de los servidores web populares y se utiliza como servidor proxy, servidor proxy inverso y equilibrador de carga. Es una alternativa popular al antiguo servidor web Apache, ya que está diseñado teniendo en cuenta las aplicaciones que consumen muchos recursos. Está impulsado por eventos, es asíncrono y no bloquea, por lo que con frecuencia supera a Apache en términos de rendimiento. Nginx se utiliza a menudo en grandes servidores web a los que millones de usuarios se conectan simultáneamente para acceder a recursos.

Al ser asíncrono, la capacidad de manejar millones de usuarios sin ralentizar el servidor lo convierte en la opción número uno en muchas empresas para implementar sus sistemas. Esta guía muestra cómo instalar y configurar servidores web Nginx con facilidad. La guía utiliza Ubuntu 18.04 como versión porque es LTS; por lo tanto, tiene un soporte a largo plazo que se requiere en un entorno de producción. Instalar y configurar un servidor web Nginx es relativamente fácil, pero implica una serie de pasos.

Instalación

Estas instrucciones fueron escritas para la versión Ubuntu 18.04 LTS, y por lo tanto no se debe usar en una versión diferente de Linux a menos que los mismos comandos también funcionen allí. Se recomienda instalar Nginx en una cuenta de usuario normal con permiso sudo para mitigar el riesgo de seguridad. Sin embargo, este artículo no demuestra cómo crear una cuenta de usuario, ya que está fuera de su alcance.

  1. Antes de instalar Nginx, actualice la información del paquete local y, a continuación, actualice los paquetes con los siguientes comandos. Se asegura de que la última versión de Nginx se recupere del repositorio (servidor) cuando se utiliza el comando de instalación de Nginx. El comando Dist-upgrade maneja inteligentemente las dependencias para evitar problemas de incompatibilidad entre diferentes paquetes.
apt-get update && apt-get dist-upgrade
  1. Instalar Nginx con el siguiente comando
apt-get install nginx
  1. La instalación sólo requiere de 3 comandos principales para ser utilizado, a continuación, Nginx instalado en el servidor. Dado que en esta guía, Nginx se utiliza como un servidor web, el índice.html se crea tan pronto como se instala Nginx, y se puede acceder a él a través de la dirección IP externa del servidor.

http://IPAddress

  1. Aunque esté instalado, es importante asegurarse de que el servicio Nginx se inicie automáticamente si el servidor se reinicia por alguna razón. Se puede hacer de la siguiente manera.

sudo systemctl enable nginx
  1. Utilice los dos comandos siguientes para ajustar los permisos del sistema de archivos. El primer comando asigna el nombre del usuario actualmente registrado al permiso del archivo. Si es root, entonces es root, si es un nombre personalizado, entonces su nombre. Con el segundo comando se establece el permiso del archivo. Dado que el permiso para» todos los usuarios » está establecido en R, el archivo puede ser leído por cualquier persona, lo que se recomienda para archivos de acceso público. Estándares W para el permiso de escritura, que es necesario para que el propietario realice cambios en el archivo, y es útil cuando un archivo se modifica a través de un script mientras está en el servidor, como en el panel de WordPress.
sudo chown-R USER USER: USER USER/var/www /html
sudo chmod-R 755/var/www / example.com

Configuración

Instalar Nginx es simple como se describió anteriormente, pero la configuración requiere más esfuerzo y también depende de los requisitos y el entorno del servidor. Esta guía muestra cómo configurar un servidor web nginx para un dominio, cómo ajustar la configuración básica, cómo configurar SSL / TLS, que Google requiere para mejorar el rango del sitio web, y finalmente qué comandos están involucrados en la configuración de un servidor Nginx.

  1. Utilice el siguiente comando para abrir el archivo predeterminado de Nginx a través del editor nano. El archivo predeterminado se crea automáticamente cuando se instala Nginx por primera vez y define la configuración de un servidor web. Esta configuración contiene un bloque de servidor dedicado a un nombre de dominio y procesa las solicitudes a su dominio según las reglas dentro de su límite. Nano editor es solo un editor de consola que ayuda a abrir archivos de texto con facilidad. Es muy recomendable utilizar un editor mejor como Notepad++ con extensión NppFTP, ya que es bastante fácil de usar en comparación con un editor de texto de consola.
nano /etc/nginx/sites-available/default

El archivo de configuración contiene algunas importantes líneas como se ve en el siguiente fragmento de código.

  • La directiva Listen especifica el número de puerto de la dirección IP a escuchar. Para servidores web encriptados de conexión es 443, y para servidores web no encriptados es 80. Default_server lo convierte en el servidor predeterminado de todos los bloques de servidor, lo que significa que este bloque de servidor se ejecuta si el campo de encabezado de la solicitud no coincide con ninguno de los nombres de servidor especificados. Es útil capturar todas las solicitudes al servidor, independientemente del nombre de host (que significa dominio en este caso).
  • Server_name especifica el nombre de host, generalmente el nombre de dominio. Se recomienda usar los sabores naked y www del dominio, por ejemplo…

server_name google.com www.google.com la directiva raíz
  • especifica dónde se encuentran las páginas web en el servidor de archivos, por ejemplo Index.html y todas las demás subcarpetas de un sitio web. La directiva solo requiere la ruta a la carpeta raíz del sitio web, el resto se toma en relación con eso.La directiva Índice
  • especifica el nombre del archivo de índice, es decir, el archivo que se abre cuando se introduce el nombre de host en la barra de direcciones del navegador web.
  • El bloque de ubicación es útil para procesar directivas bajo el nombre de host, por ejemplo google.com/images, / videos. El / captura la directiva raíz del nombre de dominio. la directiva try_files intenta servir el contenido (archivo, carpeta) o lanza el mensaje no encontrado si el recurso no está disponible. Si necesita procesar el directorio /videos, utilice ubicación / videos.
server {
listen 80 default_server;
listen: 80 default_server;
nombre_servidor_;
root / var/www / html/;
index index.índice php.índice html.htm;
ubicación / {
try_files $uri $uri/ =404;
}
}
  1. Se recomienda reiniciar el servidor una vez que se ha configurado en un primer momento. Reiniciando el servicio nginx, vuelva a cargar el archivo de configuración también. Si se realizó un cambio simple en el archivo de configuración, usar recargar también es suficiente en lugar de reiniciar para evitar que la conexión se caiga al servidor.
sudo systemctl restart nginx
  1. Hoy en día es importante cifrar la conexión al sitio web para mejorar el rango del sitio web en el índice de Google. El cifrado se puede realizar implementando el certificado SSL / TLS en el servidor web. Hay numerosos certificados disponibles en el mercado, tanto de pago como gratuitos, pero esta guía utiliza un certificado gratuito conocido como let’s encrypt. Es gratuito, pero se requiere renovar el certificado una vez cada 3 meses, en comparación con un año en los certificados comerciales. El siguiente comando agrega certbot PPA (archivo de paquetes personales) al sistema. Estos PPA están alojados en launchpad.net, y cuando se utiliza apt-get, se descargan al sistema inmediatamente.
sudo add-apt-repository ppa:certbot / certbot

  1. El siguiente comando descarga e instala sabor a certbot para nginx. Como se mencionó anteriormente, se descarga de launchpad.net.
sudo apt-get install python-certbot-nginx
  1. Una vez instalado, utilice el siguiente comando para habilitar SSL/TLS para el nombre de dominio especificado y su sabor www. Este debe ser el mismo dominio configurado en los pasos mencionados anteriormente. Si el dominio no está configurado, asegúrese de hacerlo antes de este paso.
sudo certbot domain dominio nginx-d.extensión
– d www.dominio.extensión

  1. Cuando se haya instalado SSL/TLS como se indica anteriormente, reinicie el servidor de nuevo para que los cambios surtan efecto.
sudo systemctl restart nginx
  1. También se recomienda usar la configuración indicada en el siguiente sitio web, ya que ajusta la configuración SSL/TLS para un requisito especificado. Las opciones importantes en el siguiente sitio web son, moderno, intermedio y antiguo. La opción moderna hace que la conexión sea altamente segura, pero a costa de la compatibilidad, y por lo tanto el sitio no se cargará en navegadores we más antiguos. La opción intermedia equilibra la compatibilidad y la seguridad, por lo que se recomienda para la mayoría de los sitios web. El tipo antiguo es para sistemas heredados. No se recomienda para sitios de producción, sino para advertir a los usuarios cuando visitan el sitio desde navegadores web antiguos, como Internet Explorer 5.

https://ssl-config.mozilla.org/

Conclusión

Nginx es un servidor proxy, servidor proxy inverso y equilibrador de carga, y debido a su alto rendimiento, se usa a menudo en las empresas para servir sus servicios web. Esta guía enseña cómo instalar y configurar un servidor Nginx por primera vez en un servidor Ubuntu con facilidad. La instalación y la configuración no son tan difíciles, ya que todos los comandos abstraen las tareas complicadas debajo de la capa. Con todo, no hay razón para no usar Nginx a menos que la empresa espere un requisito diferente que Nginx no ofrece.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *