Supposons qu'il y ait 5 noms de domaine de deuxième niveau :
aaa.example.com
bbb.example.com
ccc.example.com
ddd.example.com
eee.example.com
Lors de la configuration de nginx, le module serveur ressemble à ceci :
server {
listen 443 ssl http2;
server_name aaa.example.com;
root /var/www/aaa.example.com/public;
index index.php index.html index.htm;
location / {
root /var/www/aaa.example.com/public;
try_files $uri $uri/ /index.php?$query_string;
index index.php index.html index.htm;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/dev/shm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#...
#...
#...
}
Question :
1. Il existe 5 noms de domaine de deuxième niveau. Dois-je écrire 5 modules serveur ? Puis-je écrire un module serveur à usage général qui n’en utilise qu’un ?
2. Si 5 modules serveur sont écrits, les location ~ .php${ }
模块是一样的,这个location ~ .php${ }
modules de chaque module serveur peuvent-ils être écrits une seule fois pour être partagés ? Autrement dit, peut-il être déplacé vers le module http, le module supérieur du module serveur ?
3. Dans de nombreux exemples, la racine et l'index doivent être écrits deux fois, une fois dans le serveur, et encore dans la couche suivante location / { }
module. Pourquoi cela ?
1. Lorsque vos cinq noms de domaine pointent vers le même répertoire racine et représentent le même site, server_name peut spécifier plusieurs noms de domaine, séparés par des espaces ; lorsque vos cinq noms de domaine représentent des sites différents, vous devez configurer plusieurs segments de serveur, généralement avec include ; directive pour introduire plusieurs fichiers de conf, chaque nom de domaine est un fichier de conf.
.2.la commande location ne peut être utilisée que sur le serveur et l'emplacement ; voir la documentation officielle pour plus de détails :
3. L'index racine dans l'emplacement peut partager l'index racine dans le serveur.
Le nom du serveur peut spécifier plusieurs noms de domaine, séparés par des espaces