shop.example.com es una dirección aparte que tiene que existir en tres sitios. Cuál falta se sabe fácilmente por el síntoma, y cada una tiene un remedio distinto.
1. El DNS
dig +short shop.example.com
# nothing at all: the record does not exist
Un registro A que apunte al servidor, o un CNAME a un nombre de host que lo tenga. Si falta, el navegador dice que no encuentra el servidor: la petición ni siquiera sale de la máquina.
2. El bloque de servidor
server {
listen 443 ssl;
server_name shop.example.com;
root /var/www/shop/public;
}
Con el DNS puesto y sin un server_name que case, la petición llega y Nginx sirve lo que considere el sitio por defecto. Ese es el síntoma en el que un subdominio muestra el sitio principal en su lugar, y significa que el DNS funciona.
3. El certificado
sudo certbot --nginx -d shop.example.com
Con los dos primeros bien y sin certificado para ese nombre, el navegador avisa antes de cargar nada. El nombre tiene que estar en el certificado; un certificado para example.com no cubre shop.example.com.
Dónde van los archivos
- Su propio directorio:
/var/www/shop/public. Limpio, y la forma recomendada. - Un directorio dentro del sitio principal: posible, y significa que el sitio principal puede servir los mismos archivos en una segunda dirección si no lo impide.
Los comodines
Para muchos subdominios, un registro comodín y un certificado comodín dan menos trabajo: vea subdominios comodín.
