Pour configurer votre propre serveur avec une adresse blanche, vous devez dépenser beaucoup d'argent : préparer un DNS nom, acheter une adresse blanche ou VPS/VDSet configurer NAT Transfert. Et surtout, il n'est pas toujours évident de gérer tout cela sans un manuel sur les réseaux et leurs technologies. Les créateurs du service Ngrok ont résolu ce problème en fournissant leurs serveurs comme points de connexion publics, avec tous les avantages décrits précédemment !
Qu'est-ce que Ngrok et comment l'installer ?
Ngrok est un serveur sur un réseau public Un nom de domaine déjà configuré et une adresse de connexion statique permettent de rediriger le trafic vers votre appareil local par tunneling. Schématiquement, cela ressemble à ceci :

L'agent et le service sont installés respectivement sur les serveurs local et public. L'agent se connecte ensuite au point public Ngrok (points 2 et 3). Une connexion ouverte permet alors de transférer le trafic dans les deux sens. Une requête est envoyée du réseau à l'application web. Ensuite, conformément aux règles de redirection du nœud public (n° 4), le trafic est acheminé vers la connexion ouverte du service et parvient à l'agent, où il est décompressé et transmis à l'application web.
Pour configurer une connexion réseau, vous avez besoin créer un compte sur le site officiel et puis copiez la clé !

Nous l'utiliserons pour authentifier l'agent dans le proxy inverse, téléchargez ngrok via le gestionnaire de snap. :
apt update && apt install snapd -y && \
echo “PATH=$PATH:/snap/bin” | tee -a ~/.bashrc && \
bash snap install ngrok
Après cela, nous pouvons créer un point de terminaison dans le panneau de contrôle dans le Passerelle → Bords Onglet. Vous pouvez l'utiliser pour gérer votre serveur proxy inverse :

Nous allons maintenant y connecter notre ressource locale, par exemple, Nginx serveur, qui occupe le port 80.:

Pour ce faire, ajoutez la clé précédemment copiée à la première étape au fichier de configuration et ouvrez un tunnel depuis notre ressource locale vers un point public. :
ngrok config add-authtoken && \
ngrok tunnel --label edge=
L'ID du proxy inverse se trouve dans le panneau de l'onglet Présentation et l'URL représente la ressource locale à laquelle l'accès est requis.

Après cela, nous pouvons voir un panneau avec des statistiques de base sur les connexions au nœud :

Et en contactant un point de vente public, nous recevrons une réponse du serveur Web local pour NAT:

Comment configurer la politique de trafic dans Ngrok ?
En fait, il s'agit du même module que le proxy inverse habituel pour gérer les requêtes réseau et les chemins de routage. Par exemple, utiliser le chemin /cat pour renvoyer le code 403 ou rediriger la requête de l'utilisateur.
Il existe un total de 19 fonctions qui peuvent être implémentées lors de la réception du trafic :

Examinons-en quelques-unes. Classiquement, vous pouvez écrire une configuration en balisage YAML/JSON et la diriger vers l'agent, ou apporter des modifications pour chaque type de trafic directement sur la plateforme web.
on_http_request:
- actions:
- type: custom-response
config:
status_code: 503
content: HTML code
headers:
content-type: text/html
Après cela, nous allons enregistrer et vérifier le stub appliqué sur le proxy inverse. :
curl -i https://example.ngrok.app/

Super ! Le stub a parfaitement fonctionné et a donné le résultat souhaité. De la même manière, vous pouvez appliquer des actions sur requête/réponse pour les autres modules, en suivant l'exemple ! Vous trouverez plus d'informations sur chacun d'eux dans la documentation officielle.