Je viens d'installer Nginx sur mon serveur et je suis extrêmement satisfait des résultats, mais je n'arrive toujours pas à comprendre comment insérer des hôtes virtuels génériques.
Voici la structure [du répertoire] que j'aimerais:
-- public_html (example.com)
---subdoamin 1 (x.example.com)
---subdomain 2 (y.example.com)
Comme vous pouvez le voir, c'est assez basique, cependant, j'aimerais pouvoir ajouter des domaines en ajoutant simplement un enregistrement A pour un nouveau sous-domaine, qui pointera instantanément vers le sous-répertoire du même nom sous public_html.
Il y a des trucs sur le web, mais je n'ai pas rencontré quelque chose exactement comme ça.
Toute aide serait grandement appréciée.
Je vais te montrer.
server {
server_name example.com www.example.com;
root www/pub;
}
server {
server_name ~^(.*)\.example\.com$ ;
root www/pub/$1;
}
Nous avons deux fichiers de test:
$ cat www/pub/index.html
COMMON
$ cat www/pub/t/index.html
T
Noms de serveurs statiques:
$ curl -i -H 'Host: example.com' http://localhost/
HTTP/1.1 200 OK
Server: nginx/0.8.54
Date: Wed, 23 Mar 2011 08:00:42 GMT
Content-Type: text/html
Content-Length: 7
Last-Modified: Wed, 23 Mar 2011 07:56:24 GMT
Connection: keep-alive
Accept-Ranges: bytes
COMMON
$ curl -i -H 'Host: www.example.com' http://localhost/
HTTP/1.1 200 OK
Server: nginx/0.8.54
Date: Wed, 23 Mar 2011 08:00:48 GMT
Content-Type: text/html
Content-Length: 7
Last-Modified: Wed, 23 Mar 2011 07:56:24 GMT
Connection: keep-alive
Accept-Ranges: bytes
COMMON
Et le nom du serveur regexp:
$ curl -i -H 'Host: t.example.com' http://localhost/
HTTP/1.1 200 OK
Server: nginx/0.8.54
Date: Wed, 23 Mar 2011 08:00:54 GMT
Content-Type: text/html
Content-Length: 2
Last-Modified: Wed, 23 Mar 2011 07:56:40 GMT
Connection: keep-alive
Accept-Ranges: bytes
T
Ce fichier de configuration Nginx ci-dessous permet les noms d'hôtes génériques qui sont acheminés dynamiquement vers le dossier correspondant dans /var/www/vhost/
tout en générant dynamiquement les fichiers journaux respectifs.
http://test1.wildcard.com
→ /var/www/vhost/test1
/var/log/nginx/test1.wildcard.com-access.log
/var/log/nginx/test1.wildcard.com-error.log
http://test2.wildcard.com
→ /var/www/vhost/test2
/var/log/nginx/test2.wildcard.com-access.log
/var/log/nginx/test2.wildcard.com-error.log
wildcard.conf
server {
listen 80;
listen [::]:80;
# Match everything except dot and store in $subdomain variable
# Matches test1.wildcard.com, test1-demo.wildcard.com
# Ignores sub2.test1.wildcard.com
server_name ~^(?<subdomain>[^.]+).wildcard.com;
root /var/www/vhost/$subdomain;
access_log /var/log/nginx/$Host-access.log;
error_log /var/log/nginx/$Host-error.log;
}
Voici comment j'ai géré Hôtes virtuels avec Nginx :
server_name ~^(?<vhost>.*)$;
root /srv/www/$vhost;
access_log /var/log/nginx/$vhost.access.log;
Je ne sais pas pourquoi Wildcard Subdomains in a Parent Folder est si faux/trompeur.