5

I'd like to only server requests that are made to a specific domain and just drop everything else or give it 404. Would prefer to see it done through nginx but would of course like the best solution.

1 Answer 1

5

When you setup Nginx, set your "server block" to be specific rather than general. This one would only pick up traffic going to www.domain1.com.

http {
  index index.html;

  server {
    server_name www.domain1.com;
    access_log logs/domain1.access.log main;

    root /var/www/domain1.com/htdocs;
  }
}

Where as this one would pick up all traffic to port 80.

http {
  index index.html;

  server {
    listen 80 default_server;
    server_name _; # This is just an invalid value which will never trigger on a real hostname.
    access_log logs/default.access.log main;

    server_name_in_redirect off;

    root  /var/www/default/htdocs;
  }    
}

More info: http://wiki.nginx.org/ServerBlockExample

1
  • Awesome thanks a lot for the talk through. The default config I copied from had a listen 80; in there and when I removed it everything worked as expected. Thanks again for this!
    – mhenrixon
    Feb 18, 2012 at 8:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .