1
votes

Anyone can point me please, in setting up nginx correctly. I have 3 domains and 1 subdomain, and I have problem with only one domain.

All domains have main server block the same

domain1.com

server {
    # Server host
    server_name domain1.com *.domain1.com; # Other domains are set to 1.com, 2.com ...


    # Server ports
    listen 80;
    listen [::]:80 ipv6only=on;
    listen 443 ssl http2;
    listen [::]:443 ipv6only=on ssl http2;

Now funny thing is this:

$ curl -I http://www.domain2.com,
HTTP/1.1 200 OK
Link: <http://www.domain3.com/>; rel=shortlink


$ curl -I https://domain2.com
HTTP/1.1 302 Found
Location: https://www.domain1.com

So non-www https redirects to domain1.com, and www http displays domain3.com.

I have tried to add:

server {
    listen 80;
    listen [::]:80;

    server_name www.domain2.com, domain2.com;

    return 301 https://www.domain2.com$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name domain2.com;

    return 301 https://www.domain2.com$request_uri;
}

But this doesn't helps. I see that probably some settings are redundant but not sure why is this not working. What I want to achieve is:

domain2.com, www.domain2.com > https://www.domain2.com

I also have a subdomain here, but that one is working well: dev.domain2.com

1

1 Answers

1
votes

I think it could have to do with you separating the server names by a comma instead of just a space. Try removing the comma in this line and see if you have any luck?

server_name www.domain2.com, domain2.com;