Parfois, vous souhaitez exécuter différents sites pour différents noms de domaine sur un seul serveur. Par exemple, www.siteA.com sert de blog et www.siteB.com sert de forum. Vous pouvez résoudre les adresses IP des deux noms de domaine sur votre serveur, mais vous ne pouvez pas exécuter deux sites Web différents en même temps dans le répertoire racine de Nginx. A ce stade, vous devez utiliser un répertoire virtuel. Supposons que vous placiez votre blog sous « /home/user/www/blog » et votre forum sous « /home/user/www/forum ». Ensuite nous démarrons la configuration :
Créez un répertoire "vhost" dans le répertoire de configuration de Nginx. Cet exemple suppose que Nginx est installé par défaut et que le répertoire de configuration est dans "/etc/nginx"
$ sudo mkdir /etc/nginx/vhost
Créez le fichier de configuration de siteA
$ sudo vi /etc/nginx/vhost/vhost_siteA.conf
Entrez les informations de configuration suivantes
server { listen 80; # 监听端口 server_name www.siteA.com siteA.com; # 站点域名 root /home/user/www/blog; # 站点根目录 index index.html index.htm index.php; # 默认导航页 location / { # WordPress固定链接URL重写 if (!-e $request_filename) { rewrite (.*) /index.php; } } # PHP配置 location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
Créez le fichier de configuration du siteB le pareil que siteA, les deux n'ont que La différence réside dans les répertoires "server_name" et "root"
$ sudo vi /etc/nginx/vhost/vhost_siteB.conf
server { ... server_name www.siteB.com siteB.com; # 站点域名 root /home/user/www/forum; # 站点根目录 ... }
Ouvrez le fichier nginx.conf
sudo vi /etc/nginx/nginx.conf
Ajoutez le fichier de configuration du répertoire virtuel à la fin du "http {}" section
http {
..
include /etc/nginx/vhost/*.conf;
}
Redémarrer le service Nginx
$ sudo service nginx restart
Visitez maintenant www.siteA.com et www.siteB.com, vous constaterez que le navigateur ouvrira différents sites
Conseils pour interdire l'accès
Si votre répertoire racine Nginx est défini dans "/home/user/www", vous souhaitez empêcher les autres d'accéder à votre site via "http://adresse IP/blog" ou "http://IP adresse/forum". Le moyen le plus simple est de bannir l'adresse IP. accès. La méthode est la suivante :
Ouvrez le fichier de configuration par défaut du site Nginx, pensez à le sauvegarder d'abord
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/ sites-available/default_bak
$ sudo vi /etc/nginx/sites-available/default
Supprimer tout le contenu, ne laissant que la configuration suivante
server { listen 80 default_server; server_name _; return 404; }
Après le redémarrage Nginx, les autres ne pourront pas transmettre l'adresse IP pour accéder au site Web
Si vous ne voulez pas interdire à l'adresse IP d'accéder à l'intégralité du répertoire, vous voulez simplement empêcher les autres d'accéder à votre blog et forum via IP. Ensuite, vous devez interdire l'accès aux répertoires "/blog" et "/forum".
Ouvrez le fichier de configuration par défaut du site Nginx, le même que ci-dessus, n'oubliez pas de le sauvegarder d'abord
Ajoutez la configuration suivante dans la section "serveur { }"
location ^~ /blog/ { deny all; } location ^~ /forum/ { deny all; }
Redémarrez Nginx