Maison  >  Article  >  Comment configurer plusieurs sites sur Nginx

Comment configurer plusieurs sites sur Nginx

无忌哥哥
无忌哥哥original
2018-06-27 15:26:263033parcourir

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn