Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am going to pull my hair out!

I have a website domain.com with the following virtual host configuration /etc/nginx/sites-available/domain:

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

it works great. Both domain.com and the redirection from www to non-www. I also have this virtual host configuration /etc/nginx/sites-available/owncloud for my cloud.domain.com subdomain:

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

But cloud.domain.com doesn't work! I tried to ping it and it does not resolve to my ip.

Also the weird thing is that i have another vps with the exact configurations using a different domain, lets say domain2.com. In my other vps everything works fine. Both domain2.com and cloud.domain2.com resolve to my vps ip.

I also have identical directory structure.

  • website : /var/www/wordpress
  • owncloud : /var/www/owncloud

I am using the nameservers from my domain name provider (in both cases).

i have no idea what i am doing wrong.

share|improve this question

2 Answers 2

up vote 1 down vote accepted

Create a CNAME for cloud.domain.com that points at domain.com. It should look something like this:

cloud.domain.com   300   IN   CNAME   domain.com

Alternately, you could do a wildcard domain entry:

*.domain.com   300   IN   CNAME   domain.com

Note that a wildcard will direct any requests that don't have explicit DNS entries. So "anyrandombogusname.domain.com" would resolve to domain.com's IP address.

share|improve this answer

Your question does not list your DNS configuration, but subdomain.domain.com would require specific CNAME entries in the nameserver to function correctly.

share|improve this answer
    
But in my other domain's dns configuration i haven't made any CNAME entries for the cloud subdomain. So what should my CNAME entry be? cloud --> myip? –  koukouloforos Dec 18 '13 at 18:36
    
bar.example.com. CNAME foo.example.com. is a quick and dirty example of what a CNAME would look like. If your other configuration isn't requiring it, then I may be incorrect about you needing it but I would try it and see if once it propagates if that resolves the issue for you. –  George Spiceland Dec 18 '13 at 19:17
1  
Because example.com (main domain) resolves to your nginx server directly. –  Rico Dec 18 '13 at 19:19

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.