nginx, dns - domain.com은 확인되지만 subdomain.domain.com은 확인되지 않음

nginx, dns - domain.com은 확인되지만 subdomain.domain.com은 확인되지 않음

앞머리를 뽑아볼게요!

다음과 같은 가상 호스트 구성을 가진 domain.com 웹사이트가 있습니다./etc/nginx/sites-사용 가능/도메인:

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;
        }
}

그것은 잘 작동합니다. domain.com과 www에서 www가 아닌 ​​곳으로의 리디렉션 모두. 이 가상 호스트 구성도 있습니다/etc/nginx/sites-사용 가능/owncloud내 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;
        }
}

하지만 cloud.domain.com은 작동하지 않습니다! ping을 시도했지만 내 IP로 확인되지 않습니다.

또한 이상한 점은 다른 도메인을 사용하여 정확한 구성을 가진 또 다른 VPN이 있다는 것입니다. domain2.com을 가정해 보겠습니다. 내 다른 vps에서는 모든 것이 잘 작동합니다. domain2.com과 cloud.domain2.com 모두 내 vps IP로 확인됩니다.

나는 또한 동일한 디렉토리 구조를 가지고 있습니다.

  • 웹사이트 : /var/www/wordpress
  • owncloud : /var/www/owncloud

저는 도메인 이름 공급자의 네임서버를 사용하고 있습니다(두 경우 모두).

나는 내가 뭘 잘못하고 있는지 전혀 모른다.

답변1

domain.com을 가리키는 cloud.domain.com에 대한 CNAME을 만듭니다. 다음과 같아야 합니다.

cloud.domain.com   300   IN   CNAME   domain.com

또는 와일드카드 도메인 항목을 수행할 수 있습니다.

*.domain.com   300   IN   CNAME   domain.com

와일드카드는 다음을 지시합니다.어느명시적인 DNS 항목이 없는 요청. 따라서 "anyrandombogusname.domain.com"은 domain.com의 IP 주소로 확인됩니다.

답변2

귀하의 질문에는 DNS 구성이 나열되어 있지 않지만 올바르게 작동하려면 이름 서버의 subdomain.domain.com특정 항목이 필요합니다 .CNAME

관련 정보