2013-07-10 16 views
30

Sono nuovo di Nginx e sto cercando di far funzionare i sottodomini.nginx - configurazione di due sottodomini

Quello che vorrei fare è prendere il mio dominio (chiamiamolo example.com) e aggiungere:

  • sub1.example.com,
  • sub2.example.com, e hanno anche
  • www.example.com disponibili.

So come farlo con Apache, ma Nginx è un vero e proprio grattacapo.

Io corro Debian 6.

mio /etc/nginx/sites-enabled/example.com corrente:

server { 
    server_name www.example.com example.com; 
    access_log /srv/www/www.example.com/logs/access.log; 
    error_log /srv/www/www.example.com/logs/error.log; 
    root /srv/www/www.example.com/public_html; 

    location/{ 
     index index.html index.htm; 
    } 

    location ~ \.php$ { 
     include /etc/nginx/fastcgi_params; 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name; 
    } 
} 

Si sta lavorando per servire example.com e www.example. com.

ho cercato di aggiungere un secondo blocco di server nello stesso file come:

server { 
     server_name www.example.com example.com; 
     access_log /srv/www/www.example.com/logs/access.log; 
     error_log /srv/www/www.example.com/logs/error.log; 
     root /srv/www/www.example.com/public_html; 

     server { 
      server_name sub1.example.com; 
      access_log /srv/www/example.com/logs/sub1-access.log; 
      error_log /srv/www/example.com/logs/sub1-error.log; 
      root /srv/www/example.com/sub1; 
    } 
     location/{ 
      index index.html index.htm; 
     } 

     location ~ \.php$ { 
      include /etc/nginx/fastcgi_params; 
      fastcgi_pass 127.0.0.1:9000; 
      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name; 
     } 
} 

Nessuna fortuna. Qualche idea? Apprezzerei molto qualsiasi feedback.

+0

Avrei dovuto menzionare: l'obiettivo finale è per sub1.example.com di andare su example.com/sub1 e sub2.example.com per andare su example.com/sub2. Spero che abbia un senso. – boredemt

risposta

43

L'errore sta mettendo un blocco di server all'interno di un blocco di server, è necessario chiudere il blocco del server principale quindi aprire una nuova per i sottodomini

server { 
    server_name example.com; 
    # the rest of the config 
} 
server { 
    server_name sub1.example.com; 
    # sub1 config 
} 
server { 
    server_name sub2.example.com; 
    # sub2 config 
} 
4

Hai solo bisogno di aggiungere la seguente riga al posto di your server_name

server_name xyz.com *.xyz.com; 

E riavviare Nginx. Questo è tutto.

+9

Cosa fare se si desidera che il sottodominio punti a una risorsa diversa sul server rispetto alla risorsa per la posizione www.esempio.com? – courtyen

Problemi correlati