angella
By:
angella

DNS check + NGINX conf + Redirect

April 17, 2016 1.7k views
DNS Nginx Debian

Hi,
I already tried to search a lot but, I admit, I'm stuck. So I would like to check with you what I have and what I want to achieve:

  • 1 droplet
  • 2 domains (and so 2 websites)

$ORIGIN mydomain1.com.
$TTL 1800
mydomain1.com. 1800 IN A xxx.xxx.xx.xxx ( A record @ => xxx.xxx.xx.xxx)
test.mydomain1.com. 1800 IN A xxx.xxx.xx.xxx (A record test => xxx.xxx.xx.xxx)
www.mydomain1.com. 1800 IN A xxx.xxx.xx.xxx (A record www => xxx.xxx.xx.xxx)
NS & Co. records ok ...

Question: "www" and "test" should be A records or CNAME records?

Then, server side, with NGINX:

available-site:
mydomain1.com

server {
        listen 80;

        root /var/xxxxxx/mydomain1.com/xxx;

        index index.php;

        server_name mydomain1.com www.mydomain1.com;

       ...

It works. Basic stuff right?

I want to redirect www to non-www

Again I searched and I found it is well covered and documented.
So I followed and tried:

server {
        listen 80;

        root /var/xxxxxx/mydomain1.com/xxx;

        index index.php;

        server_name mydomain1.com www.mydomain1.com;

        return 301 $scheme://mydomain1.com$request_uri;
       ...

I got the following message:

"Page is not working"
"mydomain1.com redirected you too many times
ERRTOOMANY_REDIRECTS"

2 questions:

servername mydomain1.com www.mydomain1.com;
or
server
name www.mydomain1.com mydomain1.com;
or
server_name www.mydomain1.com;

And why I got this error.

When I play around even if I get the error if I do "curl -I http://www.mydomain1.com" I got the following output:

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sun, 17 Apr 2016 08:52:47 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: http://mydomain1.com/

But as soon as I hit the browser I receive the error...

Can you please help me to solve this.
Thank you.

1 Answer

So I found something with the help of this (one more) great resource.
https://www.digitalocean.com/community/tutorials/how-to-redirect-www-to-non-www-with-nginx-on-centos-7

I created a /etc/nginx/conf.d/redirect.conf and put:

server {
    server_name www.mydomain1.com;
    return 301 $scheme://mydomain1.com$request_uri;
}

Then on site available for domain1.com

server_name mydomain1.com;

I hope it will help someone.

At least even if it works, can you confirm this is the right way...

Thank you

This tutorial will show you how to redirect a www URL to non-www, e.g. `www.example.com` to `example.com`, with Nginx on CentOS 7. We will also show you how to redirect in the other direction, from a non-www URL to www.
Have another answer? Share your knowledge.