Nginx no servirá para nada más que www.myserver.org

Nginx no servirá para nada más que www.myserver.org

De acuerdo con ladocumentación nginx, el bloque de servidor a continuación debería funcionar para amboshttps://joycegroup.orgyhttps://www.joycegroup.org

server {

listen 443 ssl;

ssl_certificate /etc/ssl/certs/joycegroup_org_chain.crt;

ssl_certificate_key /etc/ssl/private/joycegroup_org.key;

root /var/www/joycegroup_org/;

server_name joycegroup.org www.joycegroup.org;

location / {
index index.html index.htm index.html index.php;
}

}

Funciona parahttps://www.joycegroup.org, nohttps://joycegroup.org. ¿Qué estoy haciendo mal?

Con el tiempo, también querré redirigir http a https, pero primero estoy tratando de resolver este problema.

Lamento mucho la naturaleza básica de esta pregunta. Llevo horas golpeándome la cabeza contra la pared.

Respuesta1

www.joycegroup.orgpor sí solo no significa que joycegroup.org (sin www) sea un registro DNS válido.

Tenga en cuenta que no puede configurar un registro CNAME para la raíz de un dominio (¿Por qué no se puede utilizar un registro CNAME en la cúspide (también conocida como raíz) de un dominio?), por lo que necesitas un registro A.

Puedes demostrar que se trata de un problema de resolución de DNS de varias maneras, como por ejemplo curl https://joycegroup.org. Si muestra curl: (6) Could not resolve host: joycegroup.com; Name or service not known, es un problema de DNS.

Puede confirmar aún más que se trata de un problema de DNS relacionado con la diferencia entre los dos registros ejecutando nslookup o host o dig en ambos casos y comparando el resultado.

Algunos ejemplos:

  • host(Linux):
$ host <record with www>

<record with www> has address 192.168.1.10

$ host <record without www>

<no output is shown>

  • nslookup(Linux):
$ nslookup <record without www>
Server:         <dns server ip>
Address:        <dns server ip>#53

*** Can't find <record without www>: No answer

$ nslookup <record with www>

Server:         <dns server ip>
Address:        <dns server ip>#53

Name:   <record with www>
Address: 192.168.1.10
  • nslookup(Windows):
C:\Users\myuser> nslookup <record without www>

Server:  <dns server>
Address:  <dns server ip>

Name:    <record without www>

Tenga en cuenta que no se muestra ninguna dirección IP. Devuelve algo porque cada zona tiene su propio registro, aunque no es un registro A (asociado a una dirección IP) sino un registro SOA.

Por otro lado, si consulta un registro A que realmente existe, obtendrá la respuesta clásica:

C:\Users\myuser>nslookup <record with www>

Server:  <dns server>
Address:  <dns server ip>

Name:    <record with www>
Address:  192.168.1.10

Respuesta2

Como respondió A. Darwin, no tiene un registro DNS configurado para joycegroup.org:

c-nan@mba-c-nan ~ % dig www.joycegroup.org A +short  
50.116.60.151
c-nan@mba-c-nan ~ % dig joycegroup.org A +short    
c-nan@mba-c-nan ~ % 

Debe agregar el siguiente registro DNS A

joycegroup.org  IN  A   50.116.60.151

en su proveedor de DNS:

c-nan@mba-c-nan ~ % dig joycegroup.org NS +short
dns1.registrar-servers.com.
dns2.registrar-servers.com.
c-nan@mba-c-nan ~ % 

Si desea redirigir TODO el tráfico http a https puede configurar lo siguiente:

server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

Para ser específico para un dominio, puedes usar:

server {
    listen 80;
    server_name www.joycegroup.com joycegroup.com;
    return 301 https://joycegroup.com$request_uri;
}

información relacionada