Skocz do zawartości
Glibnes

Subdomena a rekordy DNS i Nginx

Polecane posty

Witam,

 

mam pewien problem z ustawieniem subdomeny na nginxie.

Używam obecnie PowerDNSa, zarządzam nim przez prosty PowerAdmin.

Dodałem rekord CNAME subdomena.domena.pl w zone domena.pl

Ustawiłem następujący config dla nginxa:

server {
listen  80;
server_name domena.pl;
root /var/www/default/htdocs;

access_log  /var/www/default/logs/access.log myown;
error_log /var/www/default/logs/error.log;
index index.php index.html index.htm;

location ~ .php$ {	
	try_files $uri $uri/ =404;

	fastcgi_split_path_info ^(.+\.php)(.*)$;
	fastcgi_pass   php_fpm;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include /etc/nginx/fastcgi_params;
	fastcgi_param  QUERY_STRING	 $query_string;
	fastcgi_param  REQUEST_METHOD   $request_method;
	fastcgi_param  CONTENT_TYPE	 $content_type;
	fastcgi_param  CONTENT_LENGTH   $content_length;
}
}

server {
listen  80;
server_name   ~^(.*)\.domena\.pl$;
#if directory doesn't exist
if (!-d /var/www/$1) {
	rewrite . http://domena.pl/ redirect;
}

# Sets the correct root
root /var/www/$1/htdocs;
}
server {
listen 80;
server_name www.domena.pl;
rewrite ^/(.*) http://domena.pl/$1 permanent;
}

Wg. autora powyższego configu (nie, nie jest mój, jedynie dostosowałem go do swoich potrzeb) powinien on działać dla każdej subdomeny.

 

Jednak u mnie po prostu strona się nie wczytuje ("Nie odnaleziono serwera" - Firefox), a domena główna działa bez problemu. Co zrobiłem źle?

Edytowano przez Glibnes (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A to czytałeś? http://www.webhostingtalk.pl/topic/16429-wazna-uwaga-dt-umieszczania-prosb-o-pomoc-w-konfiugracji-serwerow-dns-dla-waszych-domen/

 

I powiedz jak mamy Ci pomóc nie znając domeny? Pewnie masz jakiś błąd w konfiguracji dnsów.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A to czytałeś? http://www.webhostin...-waszych-domen/

 

I powiedz jak mamy Ci pomóc nie znając domeny? Pewnie masz jakiś błąd w konfiguracji dnsów.

Przepraszam, zapomniałem o tym: battlespace.pl (domena z sygnaturki).

Po przeładowaniu dnsów subdomena uni3 wskazuje na stronę główną, wg. configa nginxa powinna wskazywać na katalog z tą subdomeną (więc pewnie to problem z dnsem).

Edytowano przez Glibnes (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przepraszam, zapomniałem o tym: battlespace.pl (domena z sygnaturki).

Po przeładowaniu dnsów subdomena uni3 wskazuje na stronę główną, wg. configa nginxa powinna wskazywać na katalog z tą subdomeną (więc pewnie to problem z dnsem).

 

Dlaczego problem z DNSem? skoro subdomena wskazuje na prawidłowe IP to jest dobrze skonfigurowana.

Wklej Twoją konfiguracje, może głupia literówka po prostu.

 

BTW reload konfiguracji nginxa nic nie wypluwa?

Edytowano przez romix (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Oryginalny config (restart nginxa nic nie dał):

server {
listen  80;
server_name battlespace.pl;
root /var/www/default/htdocs;

access_log  /var/www/default/logs/access.log myown;
error_log /var/www/default/logs/error.log;
index index.php index.html index.htm;

# --- Don't log Images, JavaScript & CSS ---
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
	access_log  off;
}

location / {	  
 try_files $uri $uri/ =404;
}

location ~ .php$ {	
	try_files $uri $uri/ =404;

	fastcgi_split_path_info ^(.+\.php)(.*)$;
	fastcgi_pass   php_fpm;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include /etc/nginx/fastcgi_params;
	fastcgi_param  QUERY_STRING	 $query_string;
	fastcgi_param  REQUEST_METHOD   $request_method;
	fastcgi_param  CONTENT_TYPE	 $content_type;
	fastcgi_param  CONTENT_LENGTH   $content_length;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one

location ~ /\.ht {
 deny all;
}
}

server {
listen  80;
server_name   ~^(.*)\.battlespace\.pl$;
#if directory doesn't exist
if (!-d /var/www/$1) {
	rewrite . http://battlespace.pl/ redirect;
}

# Sets the correct root
root /var/www/$1/htdocs;
}
server {
listen 80;
server_name www.battlespace.pl;
rewrite ^/(.*) http://battlespace.pl/$1 permanent;
}

Edytowano przez Glibnes (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Spróbuj:

 

location / {
 root   /var/www/$1/htdocs;
}

 

Jeśli nie zadziała to problem jest we wpisie:

server_name   ~^(.*)\.battlespace\.pl$;

 

Nie znam składni żeby Ci pomóc, ale jak sposób wyżej nie zadziała to zerknę do dokumentacji i przeanalizuje jeszcze raz.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Spróbuj:
 location / { root /var/www/$1/htdocs; } 

Jeśli nie zadziała to problem jest we wpisie:

 server_name ~^(.*)\.battlespace\.pl$; 

Nie znam składni żeby Ci pomóc, ale jak sposób wyżej nie zadziała to zerknę do dokumentacji i przeanalizuje jeszcze raz.

 

Wywaliłem ten kod od multisubdomen, wstawiłem osobny wpis dla uni3 i zadziałało, więc masz rację - problem leży w tej części kodu.

 

Rozwiązałem problem:

 

server {
   listen  80;
   server_name ~^(?<subdomain>.+)\.battlespace\.pl$;
   #if directory doesn't exist
   if (!-d /var/www/$subdomain.battlespace.pl) {
    rewrite . http://battlespace.pl redirect;
   }

   # Sets the correct root
   root /var/www/$subdomain.battlespace.pl/htdocs;
} 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×