Как настроить виртуальные хосты Nginx в Ubuntu/Debian
Nginx предназначен для обработки нескольких доменов на одном сервере и IP-адресе. Виртуальные хосты предоставляют эту функцию. В этом руководстве мы настроим виртуальные хосты Nginx.
Файлы конфигурации Nginx
Во-первых, вам нужно установить пакет Nginx.
sudo apt install nginx
Все файлы конфигурации для виртуальных хостов Nginx хранятся в папке / etc / nginx / sites-available /.
Лучший способ - создать отдельный файл для каждого веб-сайта на сервере.
Давайте создадим первую конфигурацию для domain-name.com.
nano /etc/nginx/sites-available/domain-name.com
Теперь вставьте сюда эту конфигурацию.
server {
listen 80; # Specify the listening port
listen [::]:80; # The same thing for IPv6
root /var/www/domain-name.com/html; # The path to the website files
index index.html index.htm; # Files to display if only the domain name is specified in the address
server_name domain-name.com; # Domain name of this site
location / {
try_files $uri $uri/ =404;
}
}
Сохраните и закройте этот файл.
Создайте папку для сайта и поместите туда файлы.
mkdir -p /var/www/domain-name.com/html
И установите разрешения для папки.
chmod -R 755 /var/www
Включение виртуального хоста Nginx
Для включения виртуального хоста необходимо создать символическую ссылку на конфигурацию в каталоге с поддержкой сайтов.
ln -s /etc/nginx/sites-available/domain-name.com /etc/nginx/sites-enabled/
Теперь проверьте конфигурацию на наличие ошибок.
nginx -t
И перезапустите службу.
systemctl restart nginx
Теперь у вас есть рабочий виртуальный хост для одного домена. Вы можете получить к нему доступ по имени домена, если DNS-сервер настроен правильно. Таким образом на сервер можно добавить любое количество доменов.
Отключение виртуальных хостов Nginx
Чтобы отключить виртуальный хост, удалите символическую ссылку из папки с поддержкой сайтов.
Чтобы отключить возврат стандартной веб-страницы при доступе к IP-адресу сервера, вы можете просто удалить ссылку на конфигурацию по умолчанию.
rm /etc/nginx/sites-enabled/default
После этого перезапустите службу.
systemctl restart nginx
Таким образом вы можете отключить любую нужную вам конфигурацию. И включите его, снова добавив символическую ссылку, как мы это делали ранее.
eсли не устанавливается или появились ошибки (http://nginx.org/ru/linux_packages.html)
Debian
Установите пакеты, необходимые для подключения apt-репозитория:
sudo apt install curl gnupg2 ca-certificates lsb-release
Для подключения apt-репозитория для стабильной версии nginx, выполните следующую команду:
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Если предпочтительно использовать пакеты для основной версии nginx, выполните следующую команду вместо предыдущей:
echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Теперь нужно импортировать официальный ключ, используемый apt для проверки подлинности пакетов:
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
Проверьте, верный ли ключ был импортирован:
sudo apt-key fingerprint ABF5BD827BD9BF62
Вывод команды должен содержать полный отпечаток ключа 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62:
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
uid [ unknown] nginx signing key <Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.>
Чтобы установить nginx, выполните следующие команды:
sudo sudo apt update
sudo apt install nginx
Ubuntu
Установите пакеты, необходимые для подключения apt-репозитория:
sudo apt install curl gnupg2 ca-certificates lsb-release
Для подключения apt-репозитория для стабильной версии nginx, выполните следующую команду:
echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Если предпочтительно использовать пакеты для основной версии nginx, выполните следующую команду вместо предыдущей:
echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Теперь нужно импортировать официальный ключ, используемый apt для проверки подлинности пакетов:
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
Проверьте, верный ли ключ был импортирован:
sudo apt-key fingerprint ABF5BD827BD9BF62
Вывод команды должен содержать полный отпечаток ключа 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62:
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
uid [ unknown] nginx signing key <Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.>;
Чтобы установить nginx, выполните следующие команды:
sudo apt update
sudo apt install nginx
ссылку закоментировал /etc/apt/sources.list.d/nginx.list