Nginx: default_server directive not respected

configurationnginx

I have multiple files each with a config for a different vhost.
On one of these config files (included in the main nginx config file) I set the default_server directive:

server {

    listen                  80;
    listen                  443 ssl default_server spdy;
    server_name             188.166.X.XXX;
    root                    /var/www/default;
    index                   index.php index.html;
    ...
}

… but it's not respected. If I point the A record of a domain I didn't add in a nginx server block, the first server block in alphabetical order is picked up (instead of the default_server).
Why?

Best Answer

The default_server needs to be set for every port you use in your configuration. So, you need to add default_server after listen 80; to the virtual host you want to be the default server for port 80.