2009-11-13 6 views
0

J'ai un serveur apache en cours d'exécution, avec des bâtons sous les rails de roulement. Le fichier de configuration apache pour mon application rails ressemble à ceci:Comment puis-je voir mon serveur Apache rails à partir d'autres ordinateurs sur mon réseau local?

<VirtualHost *:80> 
    ServerName trunk.production.charanga 
    ServerAlias max.trunk.production.charanga 

    DocumentRoot /home/max/work/e_learning_resource/trunk/public 

    RewriteEngine On 

    <Proxy balancer://mongrel1> 
    BalancerMember http://127.0.0.1:5010 
    </Proxy> 

    # Redirect all non-static requests to thin 
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f 
    RewriteRule ^/(.*)$ balancer://mongrel1%{REQUEST_URI} [P,QSA,L] 

    ProxyPass/balancer://mongrel1/ 
    ProxyPassReverse/balancer://mongrel1/ 
    ProxyPreserveHost on 

    <Proxy *> 
    Order deny,allow 
    Allow from all 
    </Proxy> 

    # Custom log file locations 
    ErrorLog /home/max/work/e_learning_resource/trunk/log/error.log 
    CustomLog /home/max/work/e_learning_resource/trunk/log/access.log combined 

</VirtualHost> 

Je pensais que cela me laisser accéder à un autre ordinateur avec max.trunk.production.charanga, mais il y a une autre étape je suis sûr que Je ne peux pas comprendre. Pour le moment, si je tape mon adresse IP dans la barre d'adresse de Firefox sur un autre ordinateur, je vois le serveur apache par défaut (avec "ça marche!" Etc), mais je ne peux pas accéder à mon serveur apache. S'il vous plaît me corriger si j'utilise la mauvaise terminologie ici ...

merci max

Répondre

0

L'ordinateur qui tente d'accéder a besoin de savoir comment résoudre l'entrée DNS max.trunk.production.charanga à l'adresse IP correcte 192.168.1.42 (ou quelle que soit l'adresse IP de votre serveur). Il ne peut pas comprendre cela sans être dit.

Vous pouvez généralement indiquer cette information en éditant /etc/hosts et en pointant cette adresse vers l'adresse IP correcte. Le simple fait qu'Apache reconnaisse le nom ne permet pas à vos autres machines de savoir comment y accéder. Sinon, si vous exécutez un service DNS local, vous pouvez ajouter une entrée là-bas.

+0

Salut Topher - ce dont vous parlez résoudrait juste 'max.trunk.charanga' dans l'adresse IP de ma machine, n'est-ce pas? En d'autres termes, ce serait la même chose que de taper l'adresse IP de ma machine. Mais, quand je le fais sur une autre machine, je vois juste la page par défaut d'apache, pas ma page de rails. Est-ce que je devrais peut-être exécuter mes rails apache sur un port non-par défaut, et ajouter ce port à l'ip? J'ai essayé mais ça n'a pas l'air de marcher. –

+0

@Max - Non, la façon dont Apache sait comment rendre la page dépend entièrement du nom utilisé pour y accéder. Ce que vous avez est un hôte virtuel nommé. Apache, en fonction de l'URL utilisée pour accéder au serveur, affichera un contenu différent. Ainsi, si vous tapez simplement l'adresse IP, la page par défaut s'affichera car elle ne savait pas quel "site" vous demandiez. Cependant, si vous attribuez une entrée DNS (ou si vous en ajoutez une dans votre fichier/etc/hosts), lorsque les utilisateurs la taperont, Apache saura quel site vous voulez afficher au lieu de celui par défaut. Google pour Apache nommé hôtes virtuels. –

0

La modification de votre fichier hosts est une solution rapide et facile.

Ajouter la ligne

192.168.1.1 trunk.production.charanga max.trunk.production.charanga 

à elle dire à votre ordinateur pour utiliser cette ip pour ce domaine. En fonction de votre navigateur (Firefox effectue une mise en cache interne) ou de votre système d'exploitation (caches Windows également), vous devrez peut-être redémarrer votre navigateur ou vider votre cache DNS.

Pour plus d'informations sur votre fichier hosts (y compris où trouver sur différents systèmes d'exploitation), check this wikipedia link.

0

Je pense juste simple,

Je fais toujours comme ça. Exemple . 200.100.10.1:3000/. J'accède à mon application web d'ami dans une autre ville.

ou

<VirtualHost> 
DocumentRoot /htdoc/trunk/ <-- this is my app path. I move my rails app into xampp for exp 
ServerName 200.100.10.1:3000 
ServerAlias 200.100.10.1 
</VirtualHost> 

donc je viens de taper 200.100.10.1 pour accéder à leur demande si je ne me trompe pas. J'espère que cela fonctionne

+0

Salut Kuya - comme je l'ai dit "Pour le moment, si je tape mon adresse IP dans la barre d'adresse de Firefox sur un autre ordinateur, je vois le serveur apache par défaut (avec" Ça marche! "Etc), mais je peux ' J'arrive à mon serveur Apache. " –

0

J'ai trouvé la réponse: la solution est de faire du serveur requis le serveur par défaut pour mon adresse IP. Je l'ai fait en changeant le haut du fichier de configuration pour le site nécessaire (/ etc/apache2/sites disponibles/001-tronc dans ce cas)

de cette

<VirtualHost *:80> 
    ServerName trunk.charanga 
    ServerAlias max.trunk.charanga 

    DocumentRoot /home/max/work/e_learning_resource/trunk/public 
    ......etc 

à

NameVirtualHost 192.168.0.234:80 
<VirtualHost 192.168.0.234:80> 
    ServerName trunk.charanga 
    ServerAlias max.trunk.charanga 

    DocumentRoot /home/max/work/e_learning_resource/trunk/public 
    .....etc 

où 192.168.0.234 est l'adresse IP de mon réseau.

Maintenant, quand quelqu'un d'autre saisit cette adresse IP dans un navigateur, il obtient le site que je veux qu'il obtienne à la place du site par défaut d'apache.

Merci à tous pour vos conseils!

0

type dans l'IP et le port comme ceci:

127.0.0.0:80/rails

cela ne fonctionnera que si les autorisations sont en lecture/écriture.

Questions connexes