Поиск по сайту:

Как установить веб-сервер Nginx в Ubuntu 20.04


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

Читайте по теме: Как установить веб-сервер Apache в Ubuntu 20.04

В этом руководстве вы узнаете, как установить веб-сервер Nginx и настроить блок сервера Nginx (виртуальные хосты) в Ubuntu 20.04 LTS.

Предварительные условия

Для начала убедитесь, что у вас есть экземпляр Ubuntu 20.04 LTS с доступом по SSH и пользователь Sudo с правами root. Кроме того, для установки пакетов Nginx рекомендуется стабильное подключение к Интернету.

Установка Nginx в Ubuntu 20.04

1. Перед установкой Nginx обновите списки пакетов вашего сервера.

sudo apt update

2. Затем установите Nginx, выполнив команду:

sudo apt install nginx

Когда будет предложено продолжить, нажмите 'Y' на клавиатуре и нажмите ENTER. Установка будет произведена всего за несколько секунд.

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

sudo systemctl start nginx
sudo systemctl status nginx

Вывод выше ясно показывает, что Nginx работает.

4. Чтобы проверить версию Nginx, выполните:

sudo dpkg -l nginx

Вывод показывает, что мы используем Nginx 1.17.10, который является последней версией на момент написания этой статьи.

Откройте порты Nginx на брандмауэре UFW

Теперь, когда Nginx установлен и работает как положено, необходимо внести некоторые изменения, чтобы к Nginx можно было получить доступ через веб-браузер. Если вы используете Брандмауэр UFW, вам необходимо разрешить профиль приложения Nginx.

С брандмауэром ufw связано 3 профиля Nginx.

  1. Nginx Full – открывает порт 80 и 443 (для шифрования SSL/TLS).
  2. Nginx HTTP – открыт только порт 80 (для незашифрованного веб-трафика).
  3. Nginx HTTPS – открывает только порт 443 (для шифрования SSL/TLS).

5. Начните с включения брандмауэра в Ubuntu 20.04.


sudo ufw enable

6. На данный момент, поскольку мы не находимся на зашифрованном сервере, мы разрешим только профиль Nginx HTTP, который будет разрешать трафик через порт 80. .

sudo ufw allow 'Nginx HTTP'

7. Затем перезагрузите брандмауэр, чтобы изменения сохранились.

sudo ufw reload

8. Теперь проверьте состояние брандмауэра, чтобы проверить разрешенные профили.

sudo ufw status

Тестирование Nginx в Ubuntu 20.04

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

9. Итак, зайдите в браузер и просмотрите IP-адрес или доменное имя сервера. Чтобы проверить IP вашего сервера, выполните команду ifconfig:

ifconfig

10. Если вы используете облачный сервер, выполните приведенную ниже команду curl, чтобы получить общедоступный IP-адрес сервера.

curl ifconfig.me

11. В поле URL-адреса браузера введите IP-адрес или доменное имя вашего сервера и нажмите ВВОД.

http://server-IP or domain-name

Вы должны получить страницу приветствия Nginx по умолчанию, как показано на рисунке.

Управление процессом Nginx в Ubuntu 20.04

12. Чтобы остановить веб-сервер Nginx, просто запустите:

sudo systemctl stop nginx

13. Чтобы снова запустить веб-сервер, выполните:

sudo systemctl start nginx

14. Чтобы автоматически запускать Nginx при загрузке или перезагрузке, выполните:

sudo systemctl enable nginx

15. Если вы хотите перезапустить веб-сервер, особенно после внесения изменений в файлы конфигурации, запустите:

sudo systemctl restart nginx

16. Альтернативно вы можете перезагрузить компьютер, чтобы избежать разрыва соединений, как показано на рисунке.

sudo systemctl reload nginx

Настройка блока сервера Nginx в Ubuntu 20.04

Если вы планируете разместить на своем сервере более одного сайта, настоятельно рекомендуется настроить блок сервера Nginx. Серверный блок является эквивалентом виртуального хоста Apache.

По умолчанию Nginx поставляется со своим серверным блоком по умолчанию, который настроен на обслуживание веб-контента по пути /var/www/html.

Мы собираемся создать отдельный блок Nginx для обслуживания контента нашего домена. В этом руководстве мы будем использовать домен crazytechgeek.info.
В вашем случае обязательно замените это имя своим собственным доменным именем.

17. Чтобы создать файл блокировки сервера, сначала создайте каталог для своего домена, как показано.

sudo mkdir -p /var/www/crazytechgeek.info/html

18. Затем назначьте владельца нового каталога с помощью переменной $USER.

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

19. Убедитесь, что вы также назначили соответствующие разрешения для каталога, предоставляя владельцу все разрешения (чтение, запись и выполнение) и предоставляя другим сторонам только разрешения на чтение и выполнение.

sudo chmod -R 755 /var/www/crazytechgeek.info

20. Внутри каталога домена создайте index.html файл, который будет содержать веб-содержимое домена.

sudo vim /var/www/crazytechgeek.info/html/index.html

Вставьте содержимое ниже в образец тестового файла.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

Сохраните изменения и выйдите из файла.

21. Чтобы веб-сервер Nginx мог обслуживать только что добавленный вами контент, вам необходимо создать блок сервера с соответствующими директивами. В данном случае мы создали новый блок сервера по адресу:

sudo vim /etc/nginx/sites-available/crazytechgeek.info

Вставьте показанную конфигурацию.

server {
        listen 80;
        listen [::]:80;

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info  www.crazytechgeek.info;

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

Сохранить и выйти.

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

sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

23. Чтобы изменения вступили в силу, перезапустите веб-сервер Nginx.

sudo systemctl restart nginx

24. Чтобы убедиться, что все конфигурации в порядке, выполните команду:

nginx -t

Если все конфигурации в порядке, вы должны получить вывод, показанный ниже:

25. Теперь веб-сервер Nginx должен обслуживать контент вашего домена. Еще раз зайдите в браузер и просмотрите домен вашего сервера.

http://domain-name

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

Важные файлы конфигурации Nginx

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

Файлы конфигурации Nginx

  • /etc/nginx/nginx.conf: это основной файл конфигурации. Вы можете изменить настройки в соответствии с требованиями вашего сервера.
  • /etc/nginx/sites-available: это каталог, в котором хранится конфигурация блока сервера. Nginx использует серверные блоки только в том случае, если они связаны с каталогом с поддержкой сайтов.
  • /etc/nginx/sites-enabled: каталог содержит уже включенные блоки серверов Nginx для каждого сайта.

Файлы журналов Nginx

Существует два основных файла журнала, которые вы можете использовать для устранения неполадок веб-сервера Nginx:

  • /var/log/nginx/access.log: здесь регистрируются все запросы, сделанные к веб-серверу.
  • /var/log/nginx/error.log: это файл журнала ошибок, в котором записываются все ошибки, с которыми сталкивается Nginx.
Заключение

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