Для управления индивидуальными настройками отдельных сайтов, NGINX использует блоки server, которые принято называть виртуальными хостами (как в Apache). Виртуальные хосты позволяют размещать несколько сайтов с разными конфигурациями на одном веб сервере.
Скрипт позволяющий автоматизировать процесс добавления сайтов:
#!/bin/bash
read -p "Please enter your domain: " domain
echo "Make directories..."
if [ -e /etc/nginx/sites-available ];
then
echo "Directory /etc/nginx/sites-available exist..."
else
mkdir /etc/nginx/{sites-available,sites-enabled}
fi
mkdir -p /var/www/$domain/{bak,log,ssl,web}
echo "Creating virtual host file for $domain"
cat <<EOT > /etc/nginx/sites-available/$domain.conf
server {
listen 80;
server_name $domain;
location / {
root /var/www/$domain/web;
autoindex on;
}
location = /robots.txt {
log_not_found off;
access_log off;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /apple-touch-icon.png {
log_not_found off;
access_log off;
}
location = /apple-touch-icon-precomposed.png {
log_not_found off;
access_log off;
}
error_log /var/www/$domain/log/error.log error;
access_log /var/www/$domain/log/access.log;
}
EOT
echo "Creating a symbolic link..."
ln -s /etc/nginx/sites-available/$domain.conf /etc/nginx/sites-enabled/
echo "Restarting nginx.service"
systemctl restart nginx