web-dev-qa-db-fra.com

Tunneler un sous-répertoire localhost via ngrok?

Objectif: vouloir partager un aperçu du site Web à l'aide de ngrok, ce qui crée un tunnel à partir duquel mon hôte local peut être vu avec une URL de quelque chose comme mywebsite.ngrok.io

Problème: j'utilise WAMP et mon dossier localhost ressemble à ceci:

localhostdirectory
   |-- website1
   |-- website2
   |-- etc

Pour accéder à un site Web, je tape: localhost/website1/ dans le navigateur, je ne souhaite tunneler que cette URL, les solutions possibles seraient:

  1. Configuration d'un hôte virtuel, je passerais par les tracas de la configuration manuelle d'un hôte virtuel , puis j'obtiens quelque chose comme website1.dev, puis je le transmettais à ngrok en tant qu'en-tête Host dans le Requête HTTP, comme ça :

    ngrok http -Host-header=website1.dev 80
    

    Je n'ai pas compris ce qu'est l'en-tête Host, et pourquoi ne puis-je pas transmettre une URL relative comme localhost/website1/, quelle est également l'option de réécriture?

  2. Changez le répertoire du dossier de mon hôte local en dossier du site Web, je préférerais ne pas le faire.

Existe-t-il un meilleur moyen d'atteindre mon objectif de manière plus simple, en passant par les alias WAMP?

20
Pontiacks

Si vous vous contentez d'Apache Vhost, il vous suffit d'exécuter la commande

ngrok http -Host-header=rewrite YOUR-LOCAL-DOMAIN:PORT

N'oubliez pas de modifier le fichier hôte pour la résolution @IP <-> VOTRE-DOMAINE LOCAL

27
Abdourahmane FALL

J'ai essayé ci-dessous.

Quand j'ai couru $ ./ngrok http 80 ngrok écouter localhost:80 qui affiche le tableau de bord car le serveur Apache fonctionne sur port 80. Ensuite, j'ai essayé d'exécuter le sous-dossier dans un autre port, ce qui a résolu le problème. Supposons que vous avez un projet dans xyz et que ngrok devrait le pointer. Faites ensuite

$ cd /opt/lampp/htdocs/xyz
$ php -S localhost:8080

Ici 8080 est tout port inutilisé. localhost:8080 dirige directement vers xyz puis ouvre un autre terminal

$ ./ngrok http 8080

En faisant cela, ngrok écoutera 8080 port où votre xyz est en cours d'exécution.

J'espère que cela t'aides!!

6
Rohan Khude

Après avoir configuré l'adresse ngrok pour pointer vers localhost sur le port 80, vous pouvez accéder à vos sites Web par leurs noms. Ex:

ngrok http -subdomain=dev 80

Accéder au site Web1:

dev.ngrok.io/website1
2
semaca