Как установить Nginx в Ubuntu 20.04

Если у вас возникает сложность с самостоятельной установкой и настройкой Nginx, вы можете воспользоваться готовым решением: VPS с установленным Nginx


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

Шаг 1 - Войдите на сервер

Войдите на свой сервер под своим пользователем без полномочий root:
ssh user@example.com

Шаг 1.1 - Обновите свой сервер

После успешного входа в систему нам необходимо обновить наш сервер.
Для этого запускаем следующую команду:
user@example.com:~$ sudo apt-get update && sudo apt-get upgrade -y

Шаг 2 - Установите Nginx

Установим Nginx с помощью apt.
Для этого выполните следующую команду:
user@example.com:~$ sudo apt install nginx

Шаг 3 - Обновите брандмауэр

В предыдущем уроке мы настроили брандмауэр, который блокирует все подключения, кроме подключений из OpenSSH.
Теперь, чтобы иметь возможность использовать, Nginx нам нужно разрешить его в брандмауэре.

Шаг 3.1 - Список доступных приложений ufw

Чтобы узнать, что активировать, ufw мы сначала перечислим все доступные приложения, которые мы могли бы включить.
user@example.com:~$ sudo ufw app list
Это приведет к следующему выводу:
Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH
  • Nginx HTTPразрешит только HTTPтрафик и откроется для этого порта 80.
  • Nginx HTTPSразрешит только HTTPSтрафик и откроется для этого порта 443.
  • Nginx Fullразрешит оба HTTPи HTTPSтрафик и откроет порт 80и 443.
Вы должны разрешить только самый ограничительный вариант для производства. Поскольку мы все еще тестируем и еще не настроили SSL, мы будем выбирать Nginx HTTP.

Шаг 3.2 - Адаптируйте конфигурацию ufw

Чтобы сказать, ufw что он должен разрешить весь HTTP трафик, нам нужно выполнить следующую команду:
user@example.com:~$ sudo ufw allow 'Nginx HTTP'
Подтвердите свои изменения, выполнив следующую команду:
user@example.com:~$ sudo ufw status
Он должен вывести следующее:
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Шаг 4 - Проверьте Nginx

Теперь, когда брандмауэр разрешает HTTP соединения, Nginx мы можем проверить, все ли работает правильно.
Для этого мы собираемся проверить состояние Nginx с systemd сервисом:
user@example.com:~$ 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 Sat 2021-08-21 17:54:37 CEST; 21min ago
       Docs: man:nginx(8)
   Main PID: 6370 (nginx)
      Tasks: 2 (limit: 2280)
     Memory: 4.1M
     CGroup: /system.slice/nginx.service
             ├─6370 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─6371 nginx: worker process
Мы также можем проверить статус, перейдя по нашему IP адресу в браузере:
http://10.0.0.1
Вас должно приветствовать следующее сообщение:

Шаг 5 - Настройте веб-сайт

Теперь мы собираемся настроить тестовый веб-сайт и указать example.com на него наш домен .

Шаг 5.1 - Создайте каталог содержимого

Содержание , которое будет обеспечиваться Nginx можно найти здесь: /var/www/.
В настоящее время существует только html каталог, содержащий только что просмотренную веб-страницу.
Для нашего нового веб-сайта мы собираемся создать новый каталог.
user@example.com:~$ sudo mkdir -p /var/www/example.com/html
Прежде чем продолжить, нам нужно убедиться, что у нашего нового каталога есть нужные разрешения. Делаем это с помощью следующей команды:
user@example.com:~$ sudo chown -R $USER:$USER /var/www/example.com/html

Шаг 5.2 - Создайте образец веб-сайта

После создания каталога мы собираемся создать простой index.html:
user@example.com:~$ sudo nano /var/www/example.com/html/index.html
Вставьте следующий образец содержимого или создайте собственное сообщение!
<!doctype html>
<html>
  <head>
    <title>This is our test website</title>
  </head>
  <body>
    <p>Hello, World!</p>
  </body>
</html>

Шаг 5.3 - Настройка серверного блока Nginx

Теперь, когда у нас есть готовый веб-сайт, нам нужно создать так называемый, Server Blockкоторый сообщает, Nginxкуда направлять запросы для нашего сервера.
Для этого мы создаем в каталоге новый файл /etc/nginx/sites-available:
user@example.com:~$ sudo nano /etc/nginx/sites-available/example.com
Добавьте следующую базовую конфигурацию и адаптируйте ее к своему каталогу и домену:
server {
  listen 80;

  server_name example.com;

  root /var/www/example.com/html;
  index index.html;

  location / {
    try_files $uri $uri/ =404;
  }
}
Вы можете найти другие примеры конфигураций здесь .

Шаг 5.4 - Активируйте серверный блок

Чтобы включить, Server Block нам нужно создать ссылку на файл, который указывает на /etc/nginx/sites-enabled/.
user@example.com:~$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Шаг 5.5 - Настройте размер хэш- корзины имен серверов

Хорошее объяснение этой проблемы можно найти здесь .
Чтобы обойти это, нам нужно настроить nginx.conf:
user@example.com:~$ sudo nano /etc/nginx/nginx.conf
Найдите следующую строку:
# server_names_hash_bucket_size 64;
И раскомментируйте это. Теперь это должно выглядеть так:
server_names_hash_bucket_size 64;

Шаг 5.5 - Протестируйте конфигурацию Nginx

Теперь, когда все необходимые изменения были внесены, мы можем протестировать нашу Nginxконфигурацию.
Для этого выполните следующую команду:
user@example.com:~$ sudo nginx -t
Если ваш результат выглядит следующим образом, вы все сделали правильно!
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Шаг 5.6 - перезагрузите Nginx

После подтверждения наших настроек Nginx мы можем перезагрузить его и сделать наши изменения активными.
user@example.com:~$ sudo systemctl restart nginx
Теперь мы посетим наш новый веб-сайт. Найдите в своем браузере http://example.com и вы увидите наш простой тестовый веб-сайт.

Добавить комментарий

Автору будет очень приятно узнать обратную связь о своем руководстве.

Комментариев 0