Para configurar tu propio servidor con una dirección blanca, necesitas gastar mucho dinero: prepara un DNS nombre, comprar una dirección blanca o VPS/VDSy configurar NAT Reenvío. Y lo más importante, no siempre es claro cómo mantener todo esto sin un libro sobre redes y tecnologías de red. Los creadores del servicio Ngrok solucionaron este problema ofreciendo sus servidores como puntos de conexión públicos, ¡con todas las ventajas descritas anteriormente!
¿Qué es Ngrok y cómo lo instalo?
Ngrok es un servidor en una red pública Que ya tiene un nombre de dominio configurado de antemano y una dirección de conexión estática que permite redirigir el tráfico desde este a su dispositivo local mediante tunelización. Esquemáticamente, se ve así:

El agente y el servicio se instalan en los servidores local y público, respectivamente. Posteriormente, el agente se conecta al punto público de Ngrok en los puntos 2 y 3. Ahora tienen una conexión abierta que permite transferir tráfico en dos direcciones. Se envía una solicitud desde la red a la aplicación web. Posteriormente, según las reglas de redirección del nodo público número 4, el tráfico se enruta a la conexión abierta del servicio y llega al agente, donde se descomprime y se transmite a la aplicación web.
Para configurar una conexión de red, necesita crear una cuenta en el sitio web oficial ¡y luego copia la clave!

Lo usaremos para autenticar al agente en el proxy inverso, descargar ngrok a través del administrador de snap.:
apt update && apt install snapd -y && \
echo “PATH=$PATH:/snap/bin” | tee -a ~/.bashrc && \
bash snap install ngrok
Después de eso, podemos crear un punto final en el panel de control en el Puerta de enlace → Bordes Pestaña. Puedes usarla para administrar tu servidor proxy inverso.

Ahora conectaremos nuestro recurso local a él, por ejemplo, Nginx servidor, que ocupa el puerto 80.:

Para ello, agregue la clave previamente copiada en el primer paso al archivo de configuración y abra un túnel desde nuestro recurso local a un punto público.:
ngrok config add-authtoken && \
ngrok tunnel --label edge=
Donde el ID del proxy inverso se puede encontrar en el panel de la pestaña Descripción general, y la URL representa el recurso local al que se requiere acceso.

Después de esto, podremos ver un panel con estadísticas básicas sobre las conexiones al nodo:

Y al contactar con un punto de venta público, recibiremos una respuesta del servidor web local para NAT:

¿Cómo configuro la política de tráfico en Ngrok?
De hecho, este es el mismo módulo que el proxy inverso habitual para gestionar las solicitudes de red y las rutas de enrutamiento. Por ejemplo, se usa la ruta /cat para devolver el código 403 o redirigir la solicitud del usuario.
Hay un total de 19 funciones que se pueden implementar al recibir tráfico:

Veamos algunos de ellos. Clásicamente, se puede escribir una configuración en formato YAML/JSON y dirigirla al agente, o bien realizar cambios para cada tipo de tráfico directamente en la plataforma web.
on_http_request:
- actions:
- type: custom-response
config:
status_code: 503
content: HTML code
headers:
content-type: text/html
Después de eso, guardaremos y verificaremos el stub aplicado en el proxy inverso.:
curl -i https://example.ngrok.app/

¡Genial! El stub funcionó a la perfección y obtuvo el resultado deseado. De la misma manera, puedes aplicar acciones de solicitud/respuesta al resto de los módulos, siguiendo el ejemplo. Puedes encontrar más información sobre cada uno en la documentación oficial.