Welcome to the Linux Foundation Forum!

Accessing Apache Virtual Host Behind Router

I am serving 3 web sites via my own in-home ubuntu server. I've got a static public facing IP, and am serving the sites via virtual hosting. When accessing the virtual host sites outside my LAN, everything works perfectly. When accessing the domain names of the sites within the LAN, I get my router's configuration page. I can get around this by using the local ip address of the server inside my LAN, (rather then the domain names of the sites, or the public facing IP), but then I only get the default virtual host, and can't access either of my other two sites. How can I access all my virtual host sites within my LAN?

Thanks!

Randy

Comments

  • MikeEnIke
    MikeEnIke Posts: 88
    I'm not sure if this will help exactly, but have you forwarded port 80 to the server running the website(s)?
  • mfillpot
    mfillpot Posts: 2,177
    This is a standard error, tih this note I am assuming that you are using name-base virtual hosts. The DNS entries are pointing to your router, the router have http blocked from the outside so they can easily pass through, but from within the network a http port request will open the router configuration interface. You can change the default http managment port for teh router which should then pass the requests properly. Or you can just call into a http proxy server on the web and have it pass your requests to the virtual hosts from an outside connection.
  • gomer
    gomer Posts: 158
    the easiest way to get around this would be make host entries for the FQDNs on the local machine you are using to access the sites. So, if you are running Linux, put entries into /etc/hosts, if you run Windows, I think it's c:\Windows\system23\drivers\lmhosts or something similar.

    The reason this happens is because you are getting the public IP address from DNS when you try to access these FQDNs from inside your network The traffic then tried to leave your network via the router, which uses PAT on the source address and writes the packet to wire. The destination on the packet is of course, yourself, so the ISP's router throws the packet away because why would it send you back your own packet?

    If you do like I said and put in static host entries that point to private IP of your server, then your host will bypass DNS for host resolution for those FQDNs but your browser will still be filling in the proper value for the "Host:" header in the HTTP request.

    Trust me, it will work ;)
  • Thanks so much! I modified the /etc/hosts file and all works perfectly!

    God Bless,
    Randy

Categories

Upcoming Training