Apache VirtualHost Problem With Unusual Network Setup

Hi,

I have an unusual network setup which is fine when I load my website from outside the network but is a problem when I load it from inside.

I'm hosting a website on a private network at 10.0.1.75. I'm using an open source CMS called Plone and am running it behind Apache on Fedora Core 2. I wanted the site hosted on a global IP as well. Since that would've involved more NAT'ting and Proxying (currently our DSL provider's router handles all network address translations), we chose instead to use the router's fixed IP and forward all port 80 requests (coming in to the router) to the internal server's IP. So, all outside-network requests to xxx.xxx.xxx.81:80 now go to 10.0.1.75:80. That works just fine. The server keeps its internal IP, the DNS entry points to the external IP, and the website is accessible from outside the network.

My problem is that I can't view the website from inside the network. I can't access xxx.xxx.xxx.80 from inside the network anyway and using 10.0.1.75 doesn't work either. My current VirtualHost configuration (required to run Plone behind Apache) is as follows:

Code:
NameVirtualHost xxx.xxx.xxx.81

<VirtualHost xxx.xxx.xxx.81>
        ServerName www.server.name.com
        ServerAlias server.name.com
        ProxyPass / http://localhost:8080/VirtualHostBase/http/www.server.name.com:80/Plone/VirtualHostRoot/
        ProxyPassReverse / http://localhost:8080/VirtualHostBase/http/www.server.name.com:80/Plone/VirtualHostRoot/
</VirtualHost>
When I add the following block to the httpd.conf file:

Code:
NameVirtualHost 10.0.1.75

<VirtualHost 10.0.1.75>
        ServerName 10.0.1.75
        ProxyPass / http://localhost:8080/VirtualHostBase/http/10.0.1.75:80/Plone/VirtualHostRoot/
        ProxyPassReverse / http://localhost:8080/VirtualHostBase/http/10.0.1.75:80/Plone/VirtualHostRoot/
</VirtualHost>
the site starts working from the inside, but not from the outside -- all relative links then go to 10.0.1.75 so Plone can't load any of its stylesheets, etc. when viewing it from outside the network. As far as Apache is concerned, it's getting a request from the network card which says its IP is 10.0.1.75, so obviously it'll use the second configuration block.

Oh, and if I put just one block in there, using the domain name instead of the IP, I get the Apache default page instead (from both inside and outside).

Is there anything I can do to be able to view the website from both inside and outside the network?

Other important bits of my httpd.conf file are as follows:

Code:
ServerRoot "/etc/httpd"
Listen 80
ServerName server.name.com
DocumentRoot "/var/www/html"
Thanks in advance!

 

 

 

 

Top