11
votes

Impossible d'accéder à l'application Sinatra via le réseau local

J'ai une application Rails. Si je commence avec rails s (Port 3000), il fonctionne parfaitement sur ma machine et chaque appareil de mon réseau local via l'adresse IP (192.168.0.3 dans mon cas).
J'ai une application SINATRA. Si je commence avec ruby ​​app.rb (port 4567), cela fonctionne parfaitement sur ma machine, mais elle n'est pas accessible à partir d'autres périphériques sur mon réseau local.

Entrez la description de l'image ici

Utilisation des deux applications minces en tant que serveur d'applications.

Est-ce quelque chose lié à la façon dont Sinatra fonctionne?


3 Réponses :


32
votes

essayer ruby ​​app.rb -o 0.0.0.0 ou ruby ​​app.rb -e production . Soit devrait fonctionner.


0 commentaires

8
votes

Permettez-moi d'ajouter des informations supplémentaires à la réponse d'Ivan. Sinatra's Readme sur la ligne de commande indique:

Sinatra applications can be run directly:

ruby myapp.rb [-h] [-x] [-e ENVIRONMENT] [-p PORT] [-o HOST] [-s
HANDLER] 

Options are:

-h # help
-p # set the port (default is 4567)
-o # set the host (default is 0.0.0.0)
-e # set the environment (default is development)
-s # specify rack server/handler (default is thin)
-x # turn on the mutex lock (default is off)


1 commentaires

Le document est incorrect sur l'hôte par défaut, au moins en mode de développement.



7
votes

Voulez-vous simplement ajouter à la réponse d'Ivan et à la clarification de Robert.

Par défaut, vous SINATRA fonctionne en mode de développement et non en mode de production. En mode développement, l'hôte par défaut auquel Sinatra va se lier est «localhost», ce qui signifie que seule la machine locale peut interagir avec elle.

Une fois que vous avez spécifié «-E Production» Votre webApp SINATRA est en mode de production, où l'hôte par défaut qu'il lie à 0.0.0.0, ce qui signifie qu'il peut interagir avec tous les autres.

Alternativement, si vous souhaitez rester en développement, spécifiez '-O 0.0.0.0'


0 commentaires