Como configurar un dominio con nginx y amazon linux AMI 2


Hola amigos dev’s recientemente llevo configurando varios servidores en AWS Services con la versión de Linux AMI 2, usando NGIX para conectar mis aplicaciones en React, Sails.js o Next.js

1.- como instalar NGINX en linux AMI 2

Las imagenes de Linux AMI 2 ya cuentan con paquetes pre-instalados puedes ejecutar el siguiente comando para ver el listado de los programas que puedes instalar.

sudo  amazon-linux-extras 

Este comando nos debe mostrar una lista de 45 programas listos para instalar en nuestro servidor de Amazon Linux EC2, nosotros nos vamos a enfocar en solo instalar y configurar NGINX

Listado de programas para instalar en amazon linux AMI2

ejecutamos el siguiente comando para instalar la versión 1.12

sudo amazon-linux-extras install nginx1.12

Una vez que termine ya tenemos NGINX en nuestro servidor ahora debemos iniciar el servicio para esto utilizamos el siguiente comando

sudo service nginx start

Listo ya se encuentra ejecutado el servicio de nginx recuerda abrir el puerto 80 Y 443 en el firewall de amazon para que este visible desde un navegador web.

Si entras desde tu navegador web a la ip publica que te asigno Amazon a la hora de crear el servidor te debe salir la siguiente pagina:

¡Excelente! Todo indica que nginx se instalo correctamente

2.- Como configurar un dominio

Ya tenemos en nuestro servidor nginx, ahora debemos apuntar nuestro dominio al servidor.

Vamos a ir la siguiente ruta en el servidor con el siguiente comando:

cd /etc/nginx/conf.d 

Como podemos observar esta carpeta se encuentra vacía aquí debemos añadir todos nuestros archivos de configuración para nuestros dominios

Vamos a crear el archivo example.com.conf donde indicaremos a nginx el nombre del dominio y el directorio que debe mostrar.

Ejecutamos el siguiente comando:

sudo nano mydomain.conf

Y pegamos el siguiente codigo:

server{
    server_name midominio.com;
    listen 80;
    root /usr/share/nginx/html/midominio.com/;

    index  index.html;
    location / {
        try_files $uri  /index.html;
    }
}
  • server_name: Aquí colocamos el nombre del dominio que deseamos escuchar puede ser un dominio com, mx on incluso un sub-dominio como por ejemplo subdominio.example.com
  • listen: indicamos el puerto que estaremos escuchando usaremos el puerto 80 para conexiones sin certificados y el puerto 443 si deseamos tener un SSL instalado recuerda que en el Firewall de Amazon debe abrir estos dos puertos a todas la direcciones.
  • root: Indicamos la ruta del directorio principal esto quiere decir que si desde el navegador entras a example.com nginx va a ir a esta carpeta y ejecutar el archivo principal o la carpeta o archivo que este indicando en la url
  • index: indicamos cual es el archivo principal siempre utilizamos el index.html
  • location: podemos indicar que si el usuario ingresa alguna url en especifico se comporte de diferente forma por ejemplo. si tenemos una api en otro puerto podemos indicar que cuando el usuario entre a example.com/api en vez de ir al directorio principal ejecute un proxy pass a nuestra aplicación en otro puerto.

Una vez que guardemos la configuraciones debemos reiniciar el servicio de nginx podemos usar el siguiente comando

sudo service nginx restart

Gracias por leer y compartir este post, si deseas puedes hacer un donativo de 1 dolar para seguir manteniendo y subir más contenido en este sitio.