nginx, dns: dominio.com se resuelve pero subdominio.dominio.com no

nginx, dns: dominio.com se resuelve pero subdominio.dominio.com no

¡Me voy a arrancar el pelo!

Tengo un sitio web domain.com con la siguiente configuración de host virtual/etc/nginx/sitios-disponibles/dominio:

server {
        listen 80;
        server_name www.domain.com;
        return 301 $scheme://domain.com$request_uri;
}
server {
        listen 80;
        server_name domain.com;
        root /var/www/wordpress;
        index index.php index.html;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }
        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }
        location ~ \.php$ {
                #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                include fastcgi-gen.conf;
        }
        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
        }
}
server {
        listen 443 ssl;
        ssl_certificate /etc/ssl/localcerts/certificate.crt;
        ssl_certificate_key /etc/ssl/localcerts/privateKey.key;

        server_name domain.com;
        root /var/www/wordpress;

        index index.php index.html;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }
        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }
        location ~ \.php$ {
                #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                include fastcgi-gen.conf;
        }
        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }
}

funciona muy bien. Tanto dominio.com como la redirección de www a no www. También tengo esta configuración de host virtual./etc/nginx/sitios-disponibles/owncloudpara mi subdominio cloud.domain.com:

server {
        listen 80;
        server_name cloud.domain.com;
        return 301 https://$server_name$request_uri; # enforce https
}
server {
        listen 443 ssl;
        ssl_certificate /etc/ssl/localcerts/certificate.crt;
        ssl_certificate_key /etc/ssl/localcerts/privateKey.key;
        server_name cloud.domain.com;

        root /var/www/owncloud;

        client_max_body_size 10G; # set max upload size

        fastcgi_buffers 64 4K;
        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        index index.php index.html;

        error_page 403 = /core/templates/403.php;
        error_page 404 = /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }
        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                deny all;
        }
        location / {
                # The following 2 rules are only needed with webfinger
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
                rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
                rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
                try_files $uri $uri/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_param HTTPS on;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
        }

        # Optional: set long EXPIRES header on static assets
        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # Optional: Don't log access to assets
                access_log off;
        }
}

¡Pero cloud.domain.com no funciona! Intenté hacer ping y no resuelve mi IP.

Además, lo extraño es que tengo otro vps con las configuraciones exactas usando un dominio diferente, digamos dominio2.com. En mis otros vps todo funciona bien. Tanto domain2.com como cloud.domain2.com se resuelven en la IP de mi vps.

También tengo una estructura de directorios idéntica.

  • sitio web: /var/www/wordpress
  • propia nube: /var/www/propia nube

Estoy usando los servidores de nombres de mi proveedor de nombres de dominio (en ambos casos).

No tengo idea de lo que estoy haciendo mal.

Respuesta1

Cree un CNAME para cloud.domain.com que apunte a domain.com. Debería verse así:

cloud.domain.com   300   IN   CNAME   domain.com

Alternativamente, puedes hacer una entrada de dominio comodín:

*.domain.com   300   IN   CNAME   domain.com

Tenga en cuenta que un comodín dirigirácualquiersolicitudes que no tienen entradas DNS explícitas. Entonces "anyrandombogusname.domain.com" se resolvería en la dirección IP de domain.com.

Respuesta2

Su pregunta no enumera su configuración de DNS, pero subdomain.domain.comrequeriría CNAMEentradas específicas en el servidor de nombres para funcionar correctamente.

información relacionada