Saltar al contenido

Ngrok configura múltiples puertos en el mismo dominio

La guía o código que verás en este post es la resolución más rápida y efectiva que encontramos a tus dudas o problema.

Solución:

Sí, es posible usar múltiples túneles simultáneosdentro del mismo hostname !

Todo lo que necesita hacer es declararlos en su archivo de configuración, así:

authtoken: 4nq9771bPxe8ctg7LKr_2ClH7Y15Zqe4bWLWF9p
tunnels:
  first-app:
    addr: 50001
    proto: http
    hostname: example.ngrok.com
    host_header: first-app.example.ngrok.com
  second-app:
    addr: 50002
    proto: http
    hostname: example.ngrok.com
    host_header: second-app.example.ngrok.com        

Y ejecutarlos con:

ngrok start --all

Busque en la documentación las opciones, como hostname, subdomain, authtoken y host_header. ¡Espero que esto te ayude!

PD Para el plan gratuito, elimine el host personalizado y la parte del encabezado como este, serán dominios diferentes para su información.

authtoken: 6yMXA63qefMZqCWSCHaaYq_5LufcciP1rG4LCZETjC6V
tunnels:
  first:
    addr: 3002
    proto: http    
  second:
    addr: 8080
    proto: http

NOTAS:

  • Para encontrar su archivo de configuración predeterminado leer https://ngrok.com/docs#default-config-location.

  • Todos los planes emiten un token de autenticación. Puedes encontrar el tuyo en el panel web: https://dashboard.ngrok.com/get-started

Lo que funcionó para mí con ngrok con múltiples puertos

Así que tuve el problema donde necesitaba el mismo dominio la política de origen para trabajar para diferentes puertos, pero me detuve en seco porque, en última instancia, ngrok no es compatible con esto. Admiten un subdominio personalizado o un dominio personalizado, pero no en diferentes puertos, ya que todos deben pasar por el puerto 80.

en lugar de renunciartuve que hackear cosas juntos usando nginx localmente así:

http 
    server 
        listen       7777;
        server_name  localhost;

        location / 
            proxy_pass http://127.0.0.1:5000;
        

        location /api 
            proxy_pass http://127.0.0.1:8000;
        
    

Tuve la suerte de que el servidor api antepuso todas las llamadas “api” para poder enrutar las llamadas api a un puerto específico y seguir sirviendo el otro tráfico en otro servidor web y es posible que no tenga tanta suerte.

Luego configuré el servidor web público para enrutar todas las llamadas a la API a la misma dirección de ngrok y dejé que ngnix lo solucionara.

Espero que esto pueda ayudarlo a pensar en una combinación de soluciones para llegar allí, ya que pensar en una sola forma puede atascarlo como a mí.

Usé el proceso ngrok (en un dominio reservado) apuntando al puerto 80 localmente.

ngrok http 80

Localmente, tengo nginx ejecutando la siguiente configuración. Lo único que me importa son las 2 ubicaciones /admin y /api, ya que son para lo que antes estaba usando múltiples procesos de ngrok. nginx le permite usar el mismo túnel para ubicaciones separadas.

server 
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    server_name _;

    location /admin 
        proxy_pass http://127.0.0.1:3005;
    

    location /api 
        proxy_pass http://127.0.0.1:5001;
    

Aquí tienes las comentarios y calificaciones

Si te ha resultado de provecho este artículo, te agradeceríamos que lo compartas con otros programadores y nos ayudes a difundir este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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