Введение
Nginx Server Blocks позволяет запускать более одного веб-сайта на одном компьютере. С помощью Server Blocks вы можете указать корень документа сайта (каталог, содержащий файлы сайта), создать отдельную политику безопасности для каждого сайта, использовать разные SSL-сертификаты для каждого сайта и многое другое.
Чтобы узнать, как настроить Single Server Block с помощью Nginx в Debian 10, прочитайте это руководство.
В этой статье мы предоставим подробные инструкции по настройке блока сервера Nginx в Debian 10 Buster.
Если вы намерены установить Nginx на удаленный сервер, продолжайте читать, в противном случае, если вы хотите установить Nginx на свой локальный компьютер, пропустите первый абзац «Подключение к серверу» и прочитайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Теперь вы подключены к своему серверу, вы готовы начать установку Nginx.
Предпосылки
Следуйте этому руководству, чтобы установить Nginx: Как установить Nginx на Debian 10.
Настройка серверных блоков
По умолчанию Nginx Debian имеет только один серверный блок. Он настроен на использование файлов в каталоге /var/www/html
.
Нам нужны дополнительные каталоги, если мы хотим создать больше сайтов.
Мы создаем структуру внутри /var/www
для каждого нашего сайта. Веб-контент будет помещен в каталог html.
Из консоли:
sudo mkdir -p /var/www/esempio.com/html
sudo mkdir -p /var/www/test.com/html
Мы можем использовать переменную $ USER, чтобы назначить необходимые разрешения для учетной записи, в которую мы в данный момент вошли (убедитесь, что вы не вошли в систему как root). Это позволит нам легко создавать или изменять содержимое в этом каталоге:
sudo chown -R $USER:$USER /var/www/esempio.com/html
sudo chown -R $USER:$USER /var/www/test.com/html
Давайте удостоверимся, что разрешения верны:
sudo chmod -R 755 /var/www
Создайте пробную страницу
Создадим файл index.html для первого домена:
nano /var/www/esempio.com/html/index.html
Давайте вставим следующий пример кода:
<html>
<head>
<title>Benvenuto, esempio.com</title>
</head>
<body>
<h1>Il dominio esempio.com è funzionante!</h1>
</body>
</html>
Сохраните и закройте файл.
Давайте создадим вторую страницу примера, скопировав первую в другой корневой каталог.
cp /var/www/esempio.com/html/index.html /var/www/test.com/html/
Откроем файл:
nano /var/www/test.com/html/index.html
Отредактируем файл:
<html>
<head>
<title>Benvenuto, test.com</title>
</head>
<body>
<h1>Il dominio test.com è funzionante!</h1>
</body>
</html>
Сохраните и закройте файл.
Создайте новый блок сервера для Nginx
Как упоминалось ранее, Nginx по умолчанию использует только один блок Server. Итак, давайте скопируем существующий, а затем отредактируем его:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/esempio.com
Откройте файл:
sudo nano /etc/nginx/sites-available/esempio.com
Удалите опцию default_server, так как только блок Server может использовать эту опцию.
server {
listen 80 default_server;
listen [::]:80 default_server;...
}
Затем измените так:
server {
listen 80;
listen [::]:80;...
}
Также измените основной корень /var/www/example.com/html ; Результат будет таким:
server {
listen 80;
listen [::]:80;
root /var/www/esempio.com/html;
index index.html index.htm index.nginx-debian.html;
server_name esempio.com www.esempio.com;
location /{
try_files $uri $uri/=404;
}
}
Создайте второй серверный блок
Копируем созданный ранее файл и меняем необходимые параметры:
sudo cp /etc/nginx/sites-available/esempio.com /etc/nginx/sites-available/test.com
Откройте файл:
sudo nano /etc/nginx/sites-available/test.com
Измените это следующим образом:
server {
listen 80;
listen [::]:80;
root /var/www/test.com/html;
index index.html index.htm index.nginx-debian.html;
server_name test.com www.test.com;
location /{
try_files $uri $uri/=404;
}
}
Включить серверные блоки
Мы включаем новые серверные блоки, создавая символические ссылки на каталог с поддержкой сайтов, которые Nginx использует на этапе запуска.
sudo ln -s /etc/nginx/sites-available/esempio.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/
Чтобы избежать проблем с памятью из-за добавления новых серверных блоков, мы модифицируем параметр внутри nginx.conf.
sudo nano /etc/nginx/nginx.conf
Найдите и раскомментируйте следующий параметр, удалив символ # перед параметром server_names_hash_bucket_size.
http {...
server_names_hash_bucket_size 64;...
}
Проверим правильность настроек:
sudo nginx -t
Если вы не столкнулись с какими-либо проблемами, перезапустите nginx:
sudo systemctl restart nginx
Отредактируйте локальный файл hosts для теста (необязательно)
Если вы не использовали свои собственные доменные имена и вместо этого использовали фиктивные значения, вы можете изменить конфигурацию своего локального компьютера, чтобы вы могли временно протестировать конфигурацию вновь настроенных серверных блоков Nginx.
Это не позволит другим посетителям правильно просматривать ваш сайт, но даст вам возможность самостоятельно заходить на сайты и проверять настройки. Примечание Убедитесь, что во время этих шагов вы работаете на своем локальном компьютере, а не на своем VPS-сервере. Вам нужно будет иметь root-доступ, быть членом административной группы или иным образом иметь возможность изменять системные файлы для этого.
Откройте файл hosts:
sudo nano /etc/hosts
Вам нужно знать общедоступный IP-адрес сервера и домены, которые вы хотите указать на сервер. Предполагая, что общедоступный IP-адрес, например, 11.11.11.11, отредактируйте файл следующим образом:
127.0.0.1 localhost...
11.11.11.11 esempio.com www.esempio.com
11.11.11.11 test.com www.test.com
Проверьте конфигурацию
Теперь, когда все готово, нам нужно проверить правильность работы серверных блоков. Вы можете сделать это, посетив домены в своем браузере:
http://esempio.com
http://test.com
Если оба этих сайта работают, вы успешно настроили два независимых блока серверов с Nginx.
Если вы редактировали файл hosts на своем локальном компьютере для проверки вновь созданных сайтов, вы можете просто удалить последние добавленные строки, чтобы восстановить его.
Вывод
В этом руководстве мы увидели, как создавать виртуальные хосты (серверные блоки) для связывания разных доменов с одной и той же установкой Nginx, чтобы иметь возможность обслуживать разные сайты с разными доменами на одном сервере с помощью Debian 10 Buster.