Apache não realiza reverse proxy para a porta 3000, ajuda.

  • Autor Autor Ruiz86
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Ruiz86

Ruiz86

Eta
SEO
Verificación en dos pasos activada
Antes de nada disculpas si no es el lugar correcto, he estado revisando y no encuentro la categoría de configuraciones de servidor y a chatGTP lo tengo ya en bucle 🙂

Voy al grano, a ver si alguien puede orientarme:

  • Tengo un back en node+express usando el puerto 3000 deplegado en mi servidor, si accedo a http://api.dominio.com:3000/ funciona, me da una respuesta que he preparado correctamente (Lo tengo arrancado con pm2).
  • Según he leido, al usar LetsEncrypt, solo funciona bajo el puerto 80 o 443 y para que la aplicación de express se cargue con https, tengo que hacer un reverse proxy con apache o nginx.

Partiendo de aquí, he optado por apache y en el archivo "/etc/apache2/sites-enabled/api.dominio.com.conf" he agregado esto:

Inserir CODE, HTML ou PHP:
<VirtualHost *:443>
    ServerName api.dominio.com
    ServerAdmin webmaster@localhost

    SSLEngine on
    SSLCertificateFile  /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

    ProxyRequests off
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/

</VirtualHost>

Y he reiniciado apache.
El resultado es que en https://api.dominio.com/ me carga un index.html que hay en blanco en vez de la aplicación express (que si lo sigue haciendo en http).

¿Qué me falta?
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
si lo deseas en nginx seria

Inserir CODE, HTML ou PHP:
upstream webs {
        server 127.0.0.1:3000;
}

server {
      listen 80;
      server_name api.dominio.com;
      return 301 https://api.dominio.com$request_uri;
}


# HTTPS Server
server {
    listen 443 ssl;
    server_name api.dominio.com;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

    location / {
        proxy_pass http://webs$request_uri;
        proxy_set_header X-Real-IP $http_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Connection "";
    }

}

Para generar los certificados he utilizado varias veces esta documentación:
 
si lo deseas en nginx seria

Inserir CODE, HTML ou PHP:
upstream webs {
        server 127.0.0.1:3000;
}

server {
      listen 80;
      server_name api.dominio.com;
      return 301 https://api.dominio.com$request_uri;
}


# HTTPS Server
server {
    listen 443 ssl;
    server_name api.dominio.com;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

    location / {
        proxy_pass http://webs$request_uri;
        proxy_set_header X-Real-IP $http_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Connection "";
    }

}

Para generar los certificados he utilizado varias veces esta documentación:
Me pasa lo mismo, por algun motivo con nginx tampoco hace caso.
 
Voltar
Topo