Как установить серверные блоки Nginx (виртуальные хосты) в Ubuntu 16.04–17.10

12 set 2022 3 min di lettura
Как установить серверные блоки Nginx (виртуальные хосты) в Ubuntu 16.04–17.10
Indice dei contenuti

Предпосылки

Следуйте этому руководству, чтобы установить Nginx - MySQL - PHP: Как установить LEMP Nginx MySQL PHP на Ubuntu 16.04-17.10

Конфигурация серверных блоков

По умолчанию Nginx Ubuntu имеет только один серверный блок. Он настроен на использование файлов в каталоге /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 для первого домена:

sudo 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>

Сохраните и закройте файл.

Давайте создадим вторую страницу примера, скопировав первую в другой корневой каталог.

sudo cp /var/www/esempio.com/html/index.html /var/www/test.com/html/

Откроем файл:

sudo 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 на своем локальном компьютере для проверки вновь созданных сайтов, вы можете просто удалить последние добавленные строки, чтобы восстановить его.

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.