Как обновить nginx ubuntu
Обновлено: 21.11.2024
Nginx — один из самых популярных веб-серверов в мире. На нем размещаются одни из самых крупных и посещаемых сайтов в Интернете. Это упрощенный вариант, который можно использовать в качестве веб-сервера или обратного прокси-сервера.
В этом руководстве мы обсудим, как установить Nginx на сервер Ubuntu 20.04, настроить брандмауэр, управлять процессом Nginx и настроить серверные блоки для размещения более одного домена с одного сервера.
Предпосылки
Прежде чем приступить к работе с этим руководством, на вашем сервере должен быть настроен обычный пользователь без полномочий root с правами sudo. Вы можете узнать, как настроить учетную запись обычного пользователя, следуя нашему руководству по начальной настройке сервера для Ubuntu 20.04.
Вы также можете зарегистрировать доменное имя перед выполнением последних шагов этого руководства. Чтобы узнать больше о настройке доменного имени в DigitalOcean, ознакомьтесь с нашим введением в DigitalOcean DNS.
Если у вас есть доступная учетная запись, для начала войдите в систему как пользователь без полномочий root.
Шаг 1. Установка Nginx
Поскольку Nginx доступен в репозиториях Ubuntu по умолчанию, его можно установить из этих репозиториев, используя систему пакетов apt.
Поскольку это наше первое взаимодействие с системой пакетов apt в этом сеансе, мы обновим наш локальный индекс пакетов, чтобы иметь доступ к самым последним спискам пакетов. После этого мы можем установить nginx:
После принятия процедуры apt установит Nginx и все необходимые зависимости на ваш сервер.
Шаг 2. Настройка брандмауэра
Перед тестированием Nginx необходимо настроить программное обеспечение брандмауэра, чтобы разрешить доступ к сервису. Nginx регистрируется как служба в ufw при установке, что упрощает предоставление доступа Nginx.
Перечислите конфигурации приложений, с которыми ufw умеет работать, набрав:
Вы должны получить список профилей приложений:
Как видно из выходных данных, для Nginx доступно три профиля:
Рекомендуется включить наиболее строгий профиль, который по-прежнему будет разрешать трафик, который вы настроили. Прямо сейчас нам нужно разрешить трафик только через порт 80.
Вы можете включить это, набрав:
Вы можете проверить изменение, набрав:
Шаг 3. Проверка веб-сервера
В конце процесса установки Ubuntu 20.04 запускает Nginx. Веб-сервер уже должен быть запущен.
Мы можем проверить с помощью системы инициализации systemd, чтобы убедиться, что служба запущена, набрав:
Как подтверждает этот вывод, служба успешно запущена. Однако лучший способ проверить это — запросить страницу у Nginx.
Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:
Вы должны получить целевую страницу Nginx по умолчанию:
Если вы находитесь на этой странице, ваш сервер работает правильно и готов к управлению.
Шаг 4. Управление процессом Nginx
Теперь, когда ваш веб-сервер запущен и работает, давайте рассмотрим некоторые основные команды управления.
Чтобы остановить веб-сервер, введите:
Чтобы запустить веб-сервер, когда он остановлен, введите:
Чтобы остановить и снова запустить службу, введите:
Если вы только вносите изменения в конфигурацию, Nginx часто может перезагружаться без разрыва соединений. Для этого введите:
По умолчанию Nginx настроен на автоматический запуск при загрузке сервера. Если это не то, что вам нужно, вы можете отключить это поведение, набрав:
Чтобы снова включить службу для запуска при загрузке, введите:
Теперь вы изучили основные команды управления и должны быть готовы настроить сайт для размещения нескольких доменов.
Шаг 5. Настройка серверных блоков (рекомендуется)
При использовании веб-сервера Nginx можно использовать блоки сервера (аналогичные виртуальным хостам в Apache) для инкапсуляции деталей конфигурации и размещения более одного домена с одного сервера. Мы настроим домен под названием your_domain, но вы должны заменить его своим собственным доменным именем.
В Nginx в Ubuntu 20.04 по умолчанию включен один серверный блок, настроенный для обслуживания документов из каталога /var/www/html . Хотя это хорошо работает для одного сайта, это может стать громоздким, если вы размещаете несколько сайтов. Вместо изменения /var/www/html давайте создадим структуру каталогов внутри /var/www для нашего сайта your_domain, оставив /var/www/html в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует ни одному из них. другие сайты.
Создайте каталог для your_domain следующим образом, используя флаг -p для создания всех необходимых родительских каталогов:
Затем назначьте владельца каталога с помощью переменной среды $USER:
Разрешения ваших корневых веб-сайтов должны быть правильными, если вы не изменили значение umask, которое устанавливает разрешения для файлов по умолчанию. Чтобы убедиться, что ваши разрешения верны и позволить владельцу читать, записывать и выполнять файлы, предоставляя только права на чтение и выполнение группам и другим пользователям, вы можете ввести следующую команду:
Затем создайте образец страницы index.html с помощью nano или вашего любимого редактора:
Внутри добавьте следующий образец HTML:
Сохраните и закройте файл, нажав Ctrl+X для выхода, затем, когда будет предложено сохранить, нажмите Y и Enter .
Чтобы Nginx мог обслуживать этот контент, необходимо создать серверный блок с правильными директивами. Вместо того, чтобы напрямую изменять файл конфигурации по умолчанию, давайте создадим новый в /etc/nginx/sites-available/your_domain :
Вставьте следующий блок конфигурации, аналогичный блоку по умолчанию, но обновленный для нашего нового каталога и доменного имени:
Обратите внимание, что мы изменили корневую конфигурацию на наш новый каталог, а server_name — на наше доменное имя.
Далее включим файл, создав из него ссылку на каталог sites-enabled, из которого Nginx читает при запуске:
Примечание. Nginx использует распространенную практику, называемую символическими ссылками или символическими ссылками, для отслеживания того, какие из ваших серверных блоков включены. Создание символической ссылки похоже на создание ярлыка на диске, чтобы впоследствии можно было удалить ярлык из каталога с включенными сайтами, сохраняя блок сервера в доступных для сайтов, если вы хотите его включить.
Два блока server теперь включены и настроены для ответа на запросы на основе их директив listen и server_name (подробнее о том, как Nginx обрабатывает эти директивы, можно прочитать здесь):
Чтобы избежать возможной проблемы с памятью хэш-контейнера, которая может возникнуть из-за добавления дополнительных имен серверов, необходимо настроить одно значение в файле /etc/nginx/nginx.conf. Откройте файл:
Сохраните и закройте файл, когда закончите.
Затем проверьте, чтобы ни в одном из ваших файлов Nginx не было синтаксических ошибок:
Если проблем нет, перезапустите Nginx, чтобы изменения вступили в силу:
Шаг 6. Знакомство с важными файлами и каталогами Nginx
Теперь, когда вы знаете, как управлять самой службой Nginx, вы должны потратить несколько минут, чтобы ознакомиться с несколькими важными каталогами и файлами.
Контент
- /var/www/html : фактический веб-контент, который по умолчанию состоит только из страницы Nginx по умолчанию, которую вы видели ранее, обслуживается из каталога /var/www/html. Это можно изменить, изменив файлы конфигурации Nginx.
Конфигурация сервера
- /etc/nginx : каталог конфигурации Nginx. Здесь находятся все файлы конфигурации Nginx.
- /etc/nginx/nginx.conf : основной файл конфигурации Nginx. Это можно изменить, чтобы внести изменения в глобальную конфигурацию Nginx.
- /etc/nginx/sites-available/ : каталог, в котором могут храниться серверные блоки для каждого сайта. Nginx не будет использовать файлы конфигурации, найденные в этом каталоге, если они не связаны с каталогом с поддержкой сайтов. Как правило, вся конфигурация серверного блока выполняется в этом каталоге, а затем включается путем ссылки на другой каталог.
- /etc/nginx/sites-enabled/ : каталог, в котором хранятся включенные серверные блоки для каждого сайта. Как правило, они создаются путем ссылки на файлы конфигурации, находящиеся в каталоге, доступном для сайтов.
- /etc/nginx/snippets : этот каталог содержит фрагменты конфигурации, которые можно включить в другое место в конфигурации Nginx. Потенциально повторяющиеся сегменты конфигурации являются хорошими кандидатами на преобразование в фрагменты.
Журналы сервера
- /var/log/nginx/access.log : каждый запрос к вашему веб-серверу записывается в этот файл журнала, если Nginx не настроен иначе.
- /var/log/nginx/error.log : все ошибки Nginx будут записываться в этот журнал.
Заключение
Теперь, когда у вас установлен веб-сервер, у вас есть много вариантов для типов контента и технологий, которые вы хотите использовать для создания более насыщенного опыта.
Если вы хотите создать более полный стек приложений, ознакомьтесь со статьей Как установить Linux, Nginx, MySQL, PHP (стек LEMP) в Ubuntu 20.04.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
Ваша заявка успешно отправлена! Закрыть
1.Обзор
В этом руководстве мы установим Nginx и настроим базовый сайт.
Что вы узнаете
- Как настроить Nginx
- Некоторые базовые настройки Nginx
Что вам понадобится
- Компьютер с Ubuntu Server 16.04 LTS
- Некоторые базовые знания об использовании командной строки.
Автор: Марчин Миколайчак
2. Установка Nginx
Чтобы установить Nginx, используйте следующую команду:
После его установки у вас уже есть все необходимое.
Вы можете указать в браузере IP-адрес вашего сервера. Вы должны увидеть эту страницу:
Если вы видите эту страницу, вы успешно установили Nginx на свой веб-сервер.
3. Создание собственного веб-сайта
Страница по умолчанию размещается в папке /var/www/html/. Вы можете разместить свои статические страницы здесь или использовать виртуальный хост и разместить их в другом месте.
Виртуальный хост — это метод размещения нескольких доменных имен на одном сервере.
Давайте создадим простую HTML-страницу в /var/www/tutorial/ (это может быть что угодно). Создайте файл index.html в этом месте.
Вставьте в файл index.html следующее:
Сохраните этот файл. На следующем шаге мы собираемся настроить виртуальный хост, чтобы Nginx использовал страницы из этого местоположения.
4. Настройка виртуального хоста
Чтобы настроить виртуальный хост, нам нужно создать файл в каталоге /etc/nginx/sites-enabled/.
Для этого руководства мы сделаем наш сайт доступным через порт 81, а не через стандартный порт 80. Вы можете изменить его, если хотите.
root — это каталог, в который мы поместили наш файл .html. index используется для указания файла, доступного при посещении корневого каталога сайта. имя_сервера может быть любым, потому что вы пока не указываете его ни на какой настоящий домен.
5. Активация виртуального хоста и результаты тестирования
Чтобы наш сайт заработал, просто перезапустите службу Nginx.
Проверим, все ли работает как надо. Откройте наш только что созданный сайт в веб-браузере. Помните, что мы использовали порт :81.
Поздравляем! Все работает как надо. Мы только что настроили веб-сервер Nginx.
6. Вот и все!
Я надеюсь, что это руководство объяснило вам основы работы с Nginx. Конечно, это гораздо более мощный инструмент. Вы можете найти больше на официальных ресурсах, доступных на сайте Nginx.
Если вы следовали моим предыдущим руководствам по установке LEMP NGINX PHP7 MySQL на сервере Ubuntu 16.04, то вы, вероятно, установили NGINX из репозитория Ubuntu. К сожалению, версия в репозитории Ubuntu обновляется не очень часто, поэтому в зависимости от того, как давно вы установили NGINX, вы можете сильно отставать в версиях. Более новые версии содержат улучшения производительности, а также исправления безопасности, поэтому важно регулярно обновлять сервер.
Обновленная статья: Как обновить NGINX на Ubuntu 20.04 LTS с 18.04 LTS
Вы можете запустить sudo nginx -v, чтобы проверить, какая у вас версия. На момент написания этой статьи текущая стабильная ветка — 1.12.x. К счастью, обновление довольно просто и обычно ничего не ломает. Вам нужно добавить новый репозиторий, тогда NGINX можно будет обновлять каждый раз, когда вы запускаете команду sudo apt upgrade.
Запустив nginx -v , вы, вероятно, увидите что-то похожее на это:
sudo nginx -V
версия nginx: nginx/1.10.3 (Ubuntu)
Первое, что вам нужно сделать, это создать резервную копию ваших текущих конфигураций NGINX. Вы можете запустить эти две команды, чтобы создать каталог резервного копирования и скопировать в него файлы конфигурации:
sudo mkdir /etc/nginx-backup/
sudo cp -r /etc/nginx/* /etc/ nginx-резервное копирование/
Далее нам нужно добавить репозиторий. Для этого вам необходимо установить общие свойства программного обеспечения, если оно еще не установлено. Выполните эту команду, чтобы убедиться, что он установлен:
sudo apt-get install software-properties-common
Теперь мы добавим репозиторий NGINX, выполнив следующие команды:
nginx=stable
sudo add-apt-repository ppa:nginx/$nginx
Вы должны получить результат, аналогичный этому, и вам нужно будет нажать Enter, чтобы одобрить его добавление:
Теперь мы хотим обновить доступные пакеты, выполнив:
sudo apt-get update
Наконец, мы хотим запустить полное обновление, которое будет включать NGINX и все его надстройки:
sudo apt-get full-upgrade
Вам будет предложено использовать новые файлы конфигурации дважды. На данный момент вам нужно ответить N, чтобы сохранить текущие версии.
Теперь при запуске sudo nginx -v вы должны увидеть новую версию.
Наконец, вам нужно отредактировать файл /etc/nginx/nginx.conf и добавить следующую строку чуть ниже строки pid вверху:
include /etc/nginx/modules-enabled/*. конф;
Затем запустите sudo nginx -t, чтобы протестировать новую конфигурацию и внести необходимые изменения, чтобы она прошла проверку.
Ранее мы писали статью о том, как обновить NGINX до последней стабильной версии в Ubuntu. С выпуском Ubuntu 20.04 LTS администраторы серверов начнут получать предложения обновить Ubuntu 18.04 LTS до Ubuntu 20.04 LTS. Если вы ранее установили NGINX в Ubuntu 18.04 LTS, он продолжит работать после обновления до Ubuntu 20.04 LTS, но у вас возникнут трудности с его обновлением.
Резервное копирование конфигураций
Если у вас ранее был установлен NGINX для Ubuntu 18.04 Bionic, вам необходимо удалить его перед обновлением до версии NGINX для Ubuntu 20.04 Focal. Если вы используете APT для обновления, вы получите некоторые ошибки.
Сначала сделайте резервную копию папки /etc/nginx. Либо сделайте копию на сервере, либо используйте SFTP для загрузки копии. Каталог не следует удалять во время удаления/переустановки, но всегда полезно сначала сделать копию.
Удалить старые версии NGINX
Выполните эту команду, чтобы удалить предыдущие версии nginx:
Установите необходимые компоненты
Настройте репозиторий APT и импортируйте ключ подписи
Можно установить либо из стабильной, либо из основной ветки. Основная линия считается разработкой, но имеет самые последние функции. Стабильная ветка будет получать только исправления безопасности. Сами NGINX рекомендуют использовать основную ветку.
Чтобы настроить репозиторий apt для стабильных пакетов nginx, выполните следующую команду:
Если вы хотите использовать основные пакеты nginx, вместо этого выполните следующую команду:
Затем импортируйте официальный ключ подписи nginx, чтобы apt мог проверить подлинность пакетов:
Убедитесь, что теперь у вас правильный ключ:
Вывод должен содержать полный отпечаток 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62.
Установите NGINX
Чтобы установить nginx, выполните следующие команды:
Запустить и включить NGINX
Чтобы запустить службу nginx и включить ее после перезагрузки, выполните следующие команды:
Вы можете проверить текущую версию, запустив
Заключительные мысли
После того как вы обновите NGINX до Ubuntu 20.04 LTS, вы сможете проверить свои сайты и файлы конфигурации. Пока вы выбрали параметры по умолчанию во время установки, он должен был сохранить ваши предыдущие конфигурации. В противном случае рекомендуется просмотреть резервные копии конфигураций и добавить к настройкам по умолчанию, а не копировать новые конфигурации.
Читайте также: