Dans ce didacticiel, nous allons vous fournir des instructions étape par étape sur la configuration des blocs de serveur nginx sur Ubuntu 16.04 et CentOS 7. Les blocs de serveur Nginx sont souvent utilisés pour exécuter plusieurs sites Web sur une seule adresse IP.
Notez que ce didacticiel concerne uniquement Nginx. Si vous utilisez Apache, vous devrez configurer des hôtes virtuels
1. Installer Nginx sur Ubuntu
Assurez-vous que les packages du système d'exploitation de votre serveur sont entièrement à jour :
apt-get update apt-get upgrade
Arrêtez et supprimez Apache, puis installez nginx à l'aide des commandes suivantes :
service apache2 stop apt-get remove apache2 apt-get autoremove apt-get install nginx
Supprimez le fichier de configuration nginx par défaut :
rm /etc/nginx/sites-enabled/default
Activez le service nginx pour qu'il démarre au démarrage et démarrez-le :
systemctl enable nginx systemctl start nginx.service
2. Installez Nginx sur CentOS
Assurez-vous que tous les packages du système d'exploitation sont à jour en exécutant les commandes suivantes :
yum clean all yum update
Arrêtez et supprimez Apache s'il est installé et en cours d'exécution sur votre serveur virtuel :
systemctl stop httpd systemctl disable httpd yum remove httpd
Installez nginx :
yum install nginx
De plus, vous pouvez installer PHP et MariaDB, alors exécutez la commande suivante :
yum install nginx mariadb mariadb-server php php-fpm php-cli php-curl php-gd php-mbstring php-mysql php-xml
Modifiez le fichier de configuration /etc/php-fpm.d/www.conf et modifiez :
user = apache group = apache
à :
user = www-data group = www-data
Exécutez la commande suivante :
chown www-data: -R /var/lib/php/session
Démarrez les services PHP-FPM, Nginx et MariaDB et activez-les au démarrage :
systemctl start php-fpm systemctl start nginx systemctl start mariadb
systemctl enable php-fpm systemctl enable nginx systemctl enable mariadb
3. Configurer nginx et configurer les blocs de serveur nginx
Configurons les directives principales dans le fichier de configuration principal de nginx nommé "nginx.conf". Il doit se trouver dans le répertoire /etc/nginx/ de votre serveur.
vi /etc/nginx/nginx.conf
user www-data; worker_processes 4; pid /var/run/nginx.pid;
utilisateur – un utilisateur qui possédera et exécutera le serveur nginx.
worker_processes – en général, il est préférable de définir la configuration nginx worker_processes sur le nombre de processeurs. Si, par exemple, vous utilisez notre plan SSD 4 VPS, définissez worker_processes sur 4.
Pour vérifier le nombre de CPU sur votre serveur, vous pouvez utiliser la commande suivante :
#cat /proc/cpuinfo | grep processor | wc -l 4
pid – l'emplacement où nginx écrira son ID de processus maître, ou PID.
Si vous utilisez CentOS, créez un nouveau fichier de configuration Nginx pour votre site Web :
vi /etc/nginx/conf.d/domain1.com.conf
Ajoutez le contenu suivant :
server { server_name www.domain1.com domain1.com; listen 80; root /var/www/html/domain1.com; access_log /var/log/nginx/domain1.com-access.log; error_log /var/log/nginx/domain1.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }
Si vous avez besoin d'héberger plusieurs sites Web sur le même serveur (en utilisant la même adresse IP), vous pouvez créer un nouveau bloc de serveur. Il est préférable de créer un nouveau fichier de configuration pour chaque site Web.
Par exemple, créez un deuxième fichier de configuration nginx nommé /etc/nginx/conf.d/domain2.com.conf et ajoutez le même contenu que /etc/nginx/conf.d/domain1.com.conf , mais assurez-vous de remplacer domaine1.com avec le deuxième nom de domaine, y compris la racine du document de votre site Web, l'emplacement des fichiers journaux, etc. :
server { server_name www.domain2.com domain2.com; listen 80; root /var/www/html/domain2.com; access_log /var/log/nginx/domain2.com-access.log; error_log /var/log/nginx/domain2.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }
Si vous utilisez le système d'exploitation Ubuntu, créez le fichier de configuration nginx "domain1.com.conf" dans le répertoire /etc/nginx/sites-available.
vi /etc/nginx/sites-enabled/domain1.com.conf
(ajoutez le même contenu que le contenu répertorié ci-dessus, c'est-à-dire /etc/nginx/conf.d/domain1.com.conf sur un serveur CentOS).
Ensuite, créez un lien symbolique depuis ce fichier vers le répertoire sites-enabled :
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Répétez la même procédure et créez de nouveaux fichiers de configuration pour tous les autres sites Web hébergés sur le serveur.
4. Testez la configuration Nginx
nginx -t
Si le test est réussi, redémarrez le service Nginx :
systemctl restart nginx
Téléchargez les fichiers de votre site Web dans les répertoires /var/www/html/domain1.com , /var/www/html/domain2.com /var/www/html/domainN.com.
L'utilisateur du serveur Web (www-data) doit avoir accès aux répertoires /var/www/html/domain1.com , /var/www/html/domain2.com , /var/www/html/domainN.com . Cela peut facilement être accompli en exécutant la commande suivante :
chown -R www-data:www-data /var/www/html/
Bien sûr, vous n'avez pas besoin de Comment configurer les blocs de serveur Nginx sur Ubuntu et CentOS, si vous utilisez l'un de nos services d'hébergement VPS Nginx, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de configurer le serveur nginx blocs pour toi. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.
PS. Si vous avez aimé cet article sur la configuration des blocs de serveur Nginx sur Ubuntu et CentOS, partagez-le avec vos amis sur les réseaux sociaux à l'aide des boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.