IP canonicalization in Nginx

July 21, 2014 4.4k views

How to solve IP canonicalization in Nginx?

ls /etc/nginx/sites-enabled

WordPress

cat /etc/nginx/sites-enabled/wordpress

ServerName mysite.com

1 comment
2 Answers

Make sure server_name is set to mysite.com and that the listen line doesn't contain default_server in /etc/nginx/sites-enabled/wordpress.

Then, add a new virtualhost called default with the following config:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;

    return 403;
}

Finally, restart nginx:

sudo service nginx restart

This should make sure your site is served only when you're accessing it using the domain name. The IP address will just return a 403 Forbidden error.

I have this question too, but I already run more than one site. I do have a file in sites available title digitalocean and this is the key part I tried to make it like your example above.```server {
listen 80 defaultserver;
listen [::]:80 default
server;

    root /usr/share/nginx/html/index.html;

    index index.php index.html index.htm;

    # Make site accessible from http://localhost/
    server_name _ localhost 138.xxx.x.x;

    return 403;
the ip address doesnt serve anything which I dont think is good.
Have another answer? Share your knowledge.