nginx-configuration de deux sous-domaines

Je suis nouveau sur Nginx et j'essaie de faire fonctionner les sous-domaines.

Ce que je voudrais faire est de prendre mon domaine (appelons - example.com) et d'ajouter:

  • sub1.example.com,
  • sub2.example.com, et ont également
  • www.example.com disponible.

Je sais comment faire cela avec Apache, mais Nginx est un vrai scratcher de tête.

J'utilise Debian 6.

Mon /etc/nginx/sites-enabled/example.com actuel:

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

Il travaille pour servir example.com et www.example.com.

J'ai essayé d'ajouter un deuxième bloc de serveur dans le même fichier comme ceci:

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

Pas de chance. Des idées? J'avais super apprécions tous les commentaires.

37
demandé sur dckuehn 2013-07-10 15:02:33

2 réponses

L'erreur est de mettre un bloc serveur dans un bloc serveur, vous devez fermer le bloc serveur principal puis en ouvrir un nouveau pour les sous-domaines

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
}
55
répondu Mohammad AbuShady 2013-07-10 14:00:15

Vous avez juste besoin d'ajouter la ligne suivante à la place de votre nom_serveur

server_name xyz.com  *.xyz.com;

Et redémarrez Nginx. C'est tout.

4
répondu Mohd Anas 2014-10-20 06:53:58