Velvet Star Monitor

Standout celebrity highlights with iconic style.

updates

Providing subdomain routing by modifying /etc/hosts (how to do this on remote server?)

Writer Mia Lopez

I am using a convoluted and badly documented piece of software (sfDomainRoutePlugin) to provide subdomain functionality for my website. I am using Apache as the web server, and running a headless Ubuntu 10.0.4 LTS on the server.

After much trial and error, I found that the only way I can get my generated subdomain links to work (without getting a 'Server Not Found' error), was to hardcode the subdomain names into my /etc/hosts file.

This works fine when I am testing on localhost - however, I want to deploy the solution to a remote server which is running several virtual servers (different websites). The remote server does not make use of the /etc/hosts file at all, as each website has a unique name.

My question is this: can I simply enter the hardcoded domain entries (along with the static IP address) in the etc/hosts file? or is there another way of doing this?

My proposed approach would be to modify the /etc/hosts file on the remote server as follows:

123.456.789.123 foo.example.com
123.456.789.123 foo1.example.com
123.456.789.123 foo2-bar.example.com

Where 123.456.789.123 is the static IP of the remote server.

Is this the way to do it?

I would be especially greatful to hear from anytone that has managed to use sfDomainRoutePlugin for a similar purpose, in a production environment.

2 Answers

If all subdomain must be served by one physical site, you have:

  • write in DNS-zone smth.like

    www IN A ip-address

    somename IN A another ip-address /if it needed/

    • IN CNAME www

last records will give you for all and any undefined in zone names IP of www as answer

  • In hosting control panel define *.domainname as alias for www site

can I simply enter the hardcoded domain entries (along with the static IP address) in the etc/hosts file?

No. With hosts you'll be able route requests to correct server, but it will not be able to process requests without knowing about subdomain mapping (these sites doesn't exist for server)

1

Since all of your domains/subdomains are using the same IP address, we do not need to worry about any reverse proxies. see below for some examples. These are for different domains but work just as well for the subdomains. You should not need to edit your hosts file.

# Ensure that Apache listens on port 80
Listen 80
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/example1
ServerName
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/example2
ServerName
# Other directives here
</VirtualHost> 

Also, ping each one of your subdomains. If they do not return your static ip address then you know that it's a DNS/Record issue. You may need to look at the setup of your domain registration again or wait for the DNS (typically 15 minutes to an hour) to kick in.

2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy