Entonces, como dice el título, estoy implementando una aplicación de reacción con el backend express en una instancia ec2.
Lo que estoy tratando de hacer para hacer:
(Solo enumere esto aquí para proporcionar un contexto crucial en caso de que me equivoque en otro lugar)
haga que mi modo de producción express se ejecute en el puerto 80 con el html de compilación de reacción como raíz.
ejecutar la compilación en una instancia ec2
use nginx para revertir el proxy a mi dominio en https y puerto 443
ejecute server.js en modo de producción a través de PM2
Cosas con las que actualmente tengo problemas:
Mi configuración de Nginx se configuró originalmente para tratar de transmitir la aplicación de reacción que se ejecuta con la aplicación express a través de un proxy inverso entre los dos. Eso ha cambiado, así que ahora estoy tratando de configurar el servidor para revertir el proxy de todo en mi aplicación.
Estaba siguiendo este artículo como mi referencia, pero la principal diferencia es que quieren que use el archivo conf de nginx y no el archivo sites_enabled que hice en mi configuración inicial de nginx. Por lo que puedo ver en el artículo, parece que los archivos de configuración también cambiaron el diseño, por lo que puede ser una práctica obsoleta.
Esto es lo que tengo actualmente para Nginx sites_enabled:
listen 443 default_server; listen [::]:443 default_server; server_name example.com www.example.com; root /home/ubuntu/client/build; location / { try_files $uri /index.html; } location /complete { proxy_pass https://www.example.com; } # managed by Certbot ssl on; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot } server { if ($host = www.example.com) { return 301 https://$host$request_uri; } # managed by Certbot if ($host = example.com) { return 301 https://$host$request_uri; } # managed by Certbot listen 0.0.0.0:80; server_name example.com www.example.com; rewrite ^ https://$host$request_uri? permanent; }Al momento de escribir esto, no puedo ejecutar cosas como esta, por lo que solo puedo usar Express configurándolo en el puerto 443 y colocando los archivos de certificación allí.