WildCard domains : how to treat IP Address and Specific Domains differently from Failover/Wildcard Domains ?

Francis Daly francis at daoine.org
Sat Mar 2 00:43:57 UTC 2013

On Fri, Mar 01, 2013 at 03:20:10PM -0500, Jonathan Vanasco wrote:

Hi there,

> 	Requests for example.com
> 		Serve Site A
> 	All IP Address Requests :
> 		Serve Site A
> 	All other domains ( wildcard / failover )
> 		Serve Site B
> I've tried several combinations of listen + server name, but I can't get this right.  I end up sending everything to site A or site B.  

You've seen http://nginx.org/en/docs/http/request_processing.html ?

And http://nginx.org/r/listen and http://nginx.org/r/server_name ?

You need the same "listen" ip:port in all servers -- simplest is to
leave it at the default.

The you need the correct "server_name" directives in the correct server{}

B should be the default, so put it first:

    server {
      return 200 "site B\n";

A should match the exact hostname example.com, and anything that is just
numbers and dots:

    server {
      server_name example.com;
      server_name ~^[0-9.]*$;
      return 200 "site A\n";

Because of the default value of server_name, a request with no "host"
will match B. You can make it match A easily enough.

Francis Daly        francis at daoine.org

More information about the nginx mailing list