开发者

How can i see my apache rails server from other computers on my local network?

I have an apache server running, with mongrels underneath running rails. The apache config file for my rails app looks like this:

<VirtualHost *:80>
  ServerName trunk.production.charanga
  ServerAlias max.trunk.production.cha开发者_StackOverflow社区ranga

  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>

I thought that this would let me access it from another computer with max.trunk.production.charanga, but there's another step i'm sure, that i can't figure out. At the moment, if i type my ip address into the address bar in firefox on another computer, i see the default apache server (with "It works!" etc), but i can't get to my rails apache server. Please correct me if i'm using the wrong terminology here...

thanks max


The computer attempting to access it needs to know how to resolve the DNS entry max.trunk.production.charanga to the correct IP address 192.168.1.42 (or whatever is the IP address of your server). It cannot figure this out without being told.

You can usually tell it this information by editing /etc/hosts and pointing that address to the correct IP address. Just simply having Apache recognize the name doesn't allow your other machines to know how to access it.

Alternatively, if you run a local DNS service, you can add an entry there.


Editing of your hosts file is a quick and easy solution.

Adding the line

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

to it will tell your computer to use that ip for that domain. Depending on your browser (Firefox does caching internaly) or your OS (windows caches as well), you may need to restart your browser or flush your dns cache.

For more information about your hosts file (including where to find it on different OSes), check this wikipedia link.


I think it just simple,

I always do like this. example . 200.100.10.1:3000/ . I access my friend web application in another city.

or

<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>

so I just type 200.100.10.1 to access their application if i'm not wrong. I hope it work


I found the answer: the solution is to make the required server the default server for my ip address. I did this by changing the top of the config file for the required site (/etc/apache2/sites-available/001-trunk in this case)

from this

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

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

to

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

where 192.168.0.234 is my network ip address.

Now, when someone else enters that ip in a browser they get the site i want them to get instead of the apache default site.

Thanks everyone for your advice!


type in the ip and port like so:

127.0.0.0:80/rails

this will only work if permissions are set to read/write.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜