Как установить серверные блоки Nginx для домена в Ubuntu 20.04

12 set 2022 4 min di lettura
Как установить серверные блоки Nginx для домена в Ubuntu 20.04
Indice dei contenuti

Введение

Nginx Server Blocks позволяет запускать более одного веб-сайта на одном компьютере. С помощью Server Blocks вы можете указать корень документа сайта (каталог, содержащий файлы сайта), создать отдельную политику безопасности для каждого сайта, использовать разные SSL-сертификаты для каждого сайта и многое другое.

В этой статье мы предоставим подробные инструкции по настройке блока сервера Nginx на Ubuntu 20.04 LTS Focal Fossa.

Руководство по настройке нескольких серверных блоков с помощью Nginx в Ubuntu 20.04 можно найти в этом руководстве.

Предпосылки

Убедитесь, что вы выполнили следующие предварительные условия, прежде чем продолжить работу с учебным пособием:

  • У вас есть доменное имя, которое указывает на IP-адрес вашего общедоступного сервера. В этом уроке мы будем использовать example.com.
  • Вы вошли в систему как пользователь с привилегиями sudo.

Если вы хотите установить Nginx на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Установите Nginx

Пакет Nginx включен в репозитории Ubuntu 18.04 по умолчанию.

sudo apt update
sudo apt install nginx

Служба Nginx запустится автоматически в конце процесса установки.Чтобы проверить тип статуса:

sudo systemctl status nginx

Вывод будет выглядеть следующим образом:

● nginx.service - A high performance web server and a reverse proxy server
 Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
 Active: active (running) since Mon 2020-05-04 23:59:35 CEST; 9s ago
 Docs: man:nginx(8)
 Main PID: 67793 (nginx)
 Tasks: 2 (limit: 2286)
 Memory: 4.1M
 CGroup: /system.slice/nginx.service
 ├─67793 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
 └─67794 nginx: worker process

Настроить брандмауэр

Предполагая, что вы используете UFW для управления брандмауэром, вам необходимо открыть порты HTTP ( 80 ) и HTTPS ( 443 ). Вы можете сделать это, включив профиль «Nginx Full», который включает правила для обоих портов:

sudo ufw allow 'Nginx Full'

Чтобы проверить тип статуса Nginx:

sudo ufw status

Вывод будет выглядеть следующим образом:

Status: active

 To Action From
 -- ------ ----
 22/tcp ALLOW Anywhere
 Nginx Full ALLOW Anywhere
 22/tcp (v6) ALLOW Anywhere (v6)
 Nginx Full (v6) ALLOW Anywhere (v6)

Создайте структуру каталогов для блока сервера

Корень документа — это каталог, в котором файлы веб-сайта для доменного имени хранятся и предлагаются в ответ на запросы. Вы можете установить корень документа в любое место, которое вы хотите.

Мы будем использовать следующую структуру каталогов:

/var/www/├── domain1.com
 │  └── public_html
 ├── domain2.com
 │  └── public_html
 ├── domain3.com
 │  └── public_html

По сути, мы создадим отдельный каталог для каждого домена, который мы хотим разместить на нашем сервере, в каталоге /var/www. В каждом из этих каталогов мы создадим каталог public_html, в котором будут храниться файлы веб-сайта домена.

Давайте создадим корневой каталог для нашего домена example.com:

sudo mkdir -p /var/www/example.com/public_html

В целях тестирования мы создадим файл index.html в корневом каталоге документов домена.

Откройте файл/создайте файл в вашем редакторе, в этом уроке мы будем использовать nano:

sudo nano /var/www/example.com/public_html/index.html

Вставьте следующие строки кода:

<!DOCTYPE html>
 <html lang="en" dir="ltr">
 <head>
 <meta charset="utf-8">
 <title>Welcome to example.com</title>
 </head>
 <body>
 <h1>Success! example.com home page!</h1>
 </body>
 </html>

В этом примере мы запускаем команды от имени пользователя sudo, а вновь созданные файлы и каталоги принадлежат пользователю root.

Чтобы избежать проблем с авторизацией, смените владельца корневого каталога доменных документов на пользователя Nginx ( www-data ) с помощью команды chown:

sudo chown -R www-data: /var/www/example.com

Создайте серверный блок

По умолчанию в системах Ubuntu файлы конфигурации блоков сервера Nginx хранятся в каталоге /etc/nginx/sites-available, которые включаются через символические ссылки на каталог /etc/nginx/sites-enabled/.

Откройте редактор и создайте следующий файл блокировки сервера:

sudo nano /etc/nginx/sites-available/example.com
server {
 listen 80;
 listen [::]:80;

 root /var/www/example.com/public_html;

 index index.html;

 server_name example.com www.example.com;

 access_log /var/log/nginx/example.com.access.log;
 error_log /var/log/nginx/example.com.error.log;

 location /{
 try_files $uri $uri/=404;
 }
 }

Вы можете назвать файл конфигурации как угодно, но обычно лучше использовать доменное имя.

Чтобы включить новый файл блокировки сервера, создайте символическую ссылку из файла на каталог с sites-enabled, который Nginx читает при запуске:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Проверьте конфигурацию Nginx на правильность синтаксиса:

sudo nginx -t

Если ошибок нет, вывод будет выглядеть так:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
 nginx: configuration file /etc/nginx/nginx.conf test is successful

Перезапустите службу Nginx, чтобы изменения вступили в силу:

sudo systemctl restart nginx

Наконец, чтобы убедиться, что серверный блок работает должным образом, откройте свой адрес http://example.com в выбранном вами браузере, и вы увидите примерное сообщение, которое мы создали в файле index.html нашего серверного блока Nginx.

Вывод

Вы узнали, как создать конфигурацию блока сервера Nginx для размещения домена на одном сервере Ubuntu. Вы можете повторить шаги, описанные выше, и создать дополнительные серверные блоки для всех ваших доменов.

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.