GNU/Linux >> Tutoriels Linux >  >> Panels >> Panels

Hôte virtuel Nginx – Bloc serveur Nginx

Nous allons vous montrer comment créer un hôte virtuel Nginx, également appelé bloc de serveur Nginx. Dans l'un de nos précédents tutos nous expliquions Comment installer et configurer un serveur LNMP (Nginx, MySQL et PHP) sur un VPS Debian 6 (squeeze), maintenant nous allons voir comment mettre en place un nouveau bloc serveur (hôte virtuel ) pour chaque nouveau domaine.

Remarque :"VirtualHost" est un terme Apache. Nginx n'a pas d'hôtes virtuels, il a des "blocs de serveur" qui utilisent les directives server_name et listen pour se lier aux sockets tcp.

Le script suivant peut être utilisé pour configurer un nouveau bloc de serveur sur votre serveur Nginx.

#!/usr/bin/env bash
#
# Nginx - new server block
# http://rosehosting.com

# Functions
ok() { echo -e '\e[32m'$1'\e[m'; } # Green
die() { echo -e '\e[1;31m'$1'\e[m'; exit 1; }

# Variables
NGINX_AVAILABLE_VHOSTS='/etc/nginx/sites-available'
NGINX_ENABLED_VHOSTS='/etc/nginx/sites-enabled'
WEB_DIR='/var/www'
WEB_USER='www-data'

# Sanity check
[ $(id -g) != "0" ] && die "Script must be run as root."
[ $# != "1" ] && die "Usage: $(basename $0) domainName"

# Create nginx config file
cat > $NGINX_AVAILABLE_VHOSTS/$1 <<EOF
server {
  server_name $1;
  listen 80;
  root $WEB_DIR/$1/public_html;
  access_log $WEB_DIR/$1/logs/access.log;
  error_log $WEB_DIR/$1/logs/error.log;
  index index.html index.php;
  location / {
    try_files \$uri \$uri/ @rewrites;
  }
  location @rewrites {
    rewrite ^ /index.php last;
  }
  location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
    access_log off;
    expires max;
  }
  location ~ /\.ht {
    deny  all;
  }
  location ~ \.php {
    fastcgi_index index.php;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
  }
}
EOF

# Creating {public,log} directories
mkdir -p $WEB_DIR/$1/{public_html,logs}

# Creating index.html file
cat > $WEB_DIR/$1/public_html/index.html <<EOF
<!DOCTYPE html>
<html lang="en">
<head>
        <title>$1</title>
        <meta charset="utf-8" />
</head>
<body class="container">
        <header><h1>$1<h1></header>
        <div id="wrapper"><p>Hello World</p></div>
        <footer>© $(date +%Y)</footer>
</body>
</html>
EOF

# Changing permissions
chown -R $WEB_USER:$WEB_USER $WEB_DIR/$1

# Enable site by creating symbolic link
ln -s $NGINX_AVAILABLE_VHOSTS/$1 $NGINX_ENABLED_VHOSTS/$1

# Restart
echo "Do you wish to restart nginx?"
select yn in "Yes" "No"; do
    case $yn in
        Yes ) /etc/init.d/nginx restart ; break;;
        No ) exit;;
    esac
done

ok "Site Created for $1"

Voici ce qu'il fait, en un mot :

  1. Crée un nouveau répertoire pour le site (/var/www/DOMAIN.COM/public_html)
  2. Crée un nouveau répertoire pour les fichiers journaux (/var/www/DOMAIN.COM/logs)
  3. Définit le propriétaire/groupe correct.
  4. Crée un simple fichier index.html pour montrer que le site fonctionne.
  5. Demande de redémarrage.

Pour utiliser le type de script :

./nginx_vhost.sh  newdomain.com

Le script devrait fonctionner sur Debian, Ubuntu et les distributions étroitement liées.

Si vous utilisez l'un de nos plans d'hébergement VPS Ubuntu, vous n'avez pas besoin de créer vous-même l'hôte virtuel Nginx, vous pouvez simplement demander à nos administrateurs Linux experts de créer un bloc de serveur Nginx pour vous. 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 création d'un hôte virtuel Nginx, partagez-le avec vos amis sur les réseaux sociaux à l'aide des boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.


Panels
  1. nginx - 413 Entité de requête trop grande

  2. Configurations d'hôte virtuel Apache – Linux

  3. Installer le serveur Web Apache sur Linux Mint 13 / Linux Mint 14

  4. Installez Nginx et configurez l'hôte virtuel dans Ubuntu 20.04

  5. Comment installer Nginx sur Ubuntu 18.04

Comment installer Nginx sur Ubuntu 20.04

Comment installer Nginx sur CentOS 8

Installation de Nginx sur Ubuntu 14.04 et 16.04

Installez Nginx sur CentOS 7 / RHEL 7

Comment héberger un site Web sur le serveur Web NGINX

Comment configurer un hôte virtuel Nginx