Как установить несколько серверных блоков Nginx в Debian 10

12 set 2022 4 min di lettura
Как установить несколько серверных блоков Nginx в Debian 10
Indice dei contenuti

Введение

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.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.