Ich reiße mir gleich die Haare aus!
Ich habe eine Website domain.com mit der folgenden virtuellen Hostkonfiguration/etc/nginx/sites-available/Domäne:
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;
}
}
es funktioniert super. Sowohl domain.com als auch die Umleitung von www zu nicht-www. Ich habe auch diese virtuelle Host-Konfiguration/etc/nginx/sites-available/owncloudfür meine Subdomäne 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;
}
}
Aber cloud.domain.com funktioniert nicht! Ich habe versucht, es anzupingen, aber es wird nicht in meine IP aufgelöst.
Das Seltsame ist auch, dass ich einen anderen VPS mit genau denselben Konfigurationen habe, der eine andere Domäne verwendet, sagen wir domain2.com. In meinem anderen VPS funktioniert alles einwandfrei. Sowohl domain2.com als auch cloud.domain2.com werden in meine VPS-IP aufgelöst.
Ich habe auch eine identische Verzeichnisstruktur.
- Website: /var/www/wordpress
- eigene Cloud: /var/www/owncloud
Ich verwende die Nameserver meines Domain-Name-Anbieters (in beiden Fällen).
ich habe keine Ahnung, was ich falsch mache.
Antwort1
Erstellen Sie einen CNAME für cloud.domain.com, der auf domain.com verweist. Er sollte ungefähr so aussehen:
cloud.domain.com 300 IN CNAME domain.com
Alternativ können Sie einen Platzhalter für die Domäneneingabe verwenden:
*.domain.com 300 IN CNAME domain.com
Beachten Sie, dass ein PlatzhalterbeliebigAnfragen, die keine expliziten DNS-Einträge haben. Daher würde „anyrandombogusname.domain.com“ in die IP-Adresse von domain.com aufgelöst.
Antwort2
Ihre Frage listet nicht Ihre DNS-Konfiguration auf, sondern subdomain.domain.com
würde für eine ordnungsgemäße Funktion bestimmte CNAME
Einträge im Nameserver erfordern.