Как обновить nginx
Перейти к содержимому

Как обновить nginx

  • автор:

Как обновить nginx и сохранить все настройки?

Подскажите, пожалуйста, как на рабочем сервере обновится до последней версии nginx «на лету» и при этом сохранить все настройки вебсервера (сайты, домены, конфигы и т.п.) ?

  • Вопрос задан более трёх лет назад
  • 10499 просмотров

Комментировать
Решения вопроса 1
apt-get update && apt-get install nginx -y
обновит только nginx
Иль Вы из исходников собирали?
Ответ написан более трёх лет назад
Нравится 2 2 комментария
serious911 @serious911 Автор вопроса

Нет, через apt-get instatll устанавливал.

а папки /etc/nginx/sites-available, /etc/nginx/sites-enabled, /etc/nginx/nginx.conf сохранятся при этом?

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

Ответы на вопрос 3

При обновлении nginx не трогает текущие конфиги, а новые кладёт рядом, либо в директорию с примерами. Это раз. У nginx есть киллерфича обновления бинарника на лету. Это два. Выбирайте.

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

Можно использовать git.

1) подготавливаем репозиторий:

$ cd /etc/nginx $ git init . && git add . && git commit -m initial

2) обновляем nginx:

# debian/ubuntu $ apt-get update && apt-get install nginx # redhat/centos $ yum install nginx

3) смотрим измения и коммитим необходимое:

$ git diff $ git add nginx.conf && git commit -m updated

Обновить nginx в Debian 9, 10 до последней версии

Чтобы обновить или установить последнюю доступную версию WEB-сервера nginx в Debian 9, 10, необходимо.

Установите пакеты, необходимые для подключения apt-репозитория:

sudo apt install curl gnupg2 ca-certificates lsb-release

Для подключения apt-репозитория для стабильной версии nginx, выполните следующую команду:

echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list

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

echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list

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

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

Проверьте, верный ли ключ был импортирован:

sudo apt-key fingerprint ABF5BD827BD9BF62

Вывод команды должен содержать полный отпечаток ключа 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62 :

pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14] 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62 uid [ unknown] nginx signing key

Чтобы установить nginx, выполните следующие команды:

apt update

Если он был ранее установлен, то сохраните все конфигурационные файлы, а затем удалите полностью

apt-get remove nginx nginx-common

Далее установите nginx и перезалейте файлы конфига

apt install nginx

После запустите ngnix

service nginx start

Как обновить nginx

Все чаще и чаще клиенты MyHosti сталкиваются с желанием иметь самый последний софт на своём сервере. В данной статье мы рассмотрим, как выполнить обновление Nginx до последней актуальной версии.

Выполняем подключение репозиториев Nginx.

1. Переходим в директорию с источниками пакетов:

cd /etc/apt/sources.list.d/
cd /etc/yum.repos.d/

2. Создадим файлы для указания источника пакетов Nginx

touch nginx.list
touch nginx.list

3. Указываем репозиторий Nginx

echo "deb http://nginx.org/packages/debian/ wheezy nginx" | tee -a /etc/apt/sources.list.d/nginx.list 
echo "deb-src http://nginx.org/packages/debian/ wheezy nginx" | tee -a /etc/apt/sources.list.d/nginx.list
echo "deb http://nginx.org/packages/debian/ jessie nginx" | tee -a /etc/apt/sources.list.d/nginx.list 
echo "deb-src http://nginx.org/packages/debian/ jessie nginx" | tee -a /etc/apt/sources.list.d/nginx.list
echo "deb http://nginx.org/packages/ubuntu/ precise nginx" | tee -a /etc/apt/sources.list.d/nginx.list 
echo "deb-src http://nginx.org/packages/ubuntu/ precise nginx" | tee -a /etc/apt/sources.list.d/nginx.list
echo "deb http://nginx.org/packages/ubuntu/ trusty nginx" | tee -a /etc/apt/sources.list.d/nginx.list 
echo "deb-src http://nginx.org/packages/ubuntu/ trusty nginx" | tee -a /etc/apt/sources.list.d/nginx.list
echo "deb http://nginx.org/packages/ubuntu/ wily nginx" | tee -a /etc/apt/sources.list.d/nginx.list 
echo "deb-src http://nginx.org/packages/ubuntu/ wily nginx" | tee -a /etc/apt/sources.list.d/nginx.list
echo "deb http://nginx.org/packages/ubuntu/ xenial nginx" | tee -a /etc/apt/sources.list.d/nginx.list 
echo "deb-src http://nginx.org/packages/ubuntu/ xenial nginx" | tee -a /etc/apt/sources.list.d/nginx.list

CentOS 5 / CloudLinux 5

echo "[nginx]" | tee -a /etc/yum.repos.d/nginx.repo 
echo "name=nginx repo" | tee -a /etc/yum.repos.d/nginx.repo
echo "baseurl=http://nginx.org/packages/mainline/centos/5/"'$basearch/' | tee -a /etc/yum.repos.d/nginx.repo
echo "gpgcheck=0" | tee -a /etc/yum.repos.d/nginx.repo
echo "enabled=1" | tee -a /etc/yum.repos.d/nginx.repo

CentOS 6 / CloudLinux 6

echo "[nginx]" | tee -a /etc/yum.repos.d/nginx.repo 
echo "name=nginx repo" | tee -a /etc/yum.repos.d/nginx.repo
echo "baseurl=http://nginx.org/packages/mainline/centos/6/"'$basearch/' | tee -a /etc/yum.repos.d/nginx.repo
echo "gpgcheck=0" | tee -a /etc/yum.repos.d/nginx.repo
echo "enabled=1" | tee -a /etc/yum.repos.d/nginx.repo

CentOS 7 / CloudLinux 7

echo "[nginx]" | tee -a /etc/yum.repos.d/nginx.repo 
echo "name=nginx repo" | tee -a /etc/yum.repos.d/nginx.repo
echo "baseurl=http://nginx.org/packages/mainline/centos/7/"'$basearch/' | tee -a /etc/yum.repos.d/nginx.repo
echo "gpgcheck=0" | tee -a /etc/yum.repos.d/nginx.repo
echo "enabled=1" | tee -a /etc/yum.repos.d/nginx.repo

4. Подключаем ключи Nginx

Обновляем Nginx на Ubuntu Server 20.04 из репозитория

Nginx

Всем добрых выходных. Что может быть проще чем обновить пакет на Ubuntu Server? Если он обновляется, то всё очень просто: «apt install пакет». А вот если нет.

Пришла задачка — обновить nginx на одном из web серверов. Главное требование, обновиться нужно на версию не ниже 1.21, потому что в более ранних версиях обнаружена какая-то уязвимость.

Захожу на сервер, смотрю версию nginx.

dpkg -l | grep nginx

nginx

У нас установлен nginx 1.18.0, да, нужно обновлять.

apt-get update apt-get install nginx dpkg -l | grep nginx

И ничего не изменилось, облом. Может, Ubuntu старая?

lsb_release -a

nginx

Да не такая и старая, Ubuntu 20.04.3 LTS. К сожалению такое случается, новые версии пакетов не сразу доходят до официальных репозиториев.

Делать нечего, будем обновлять пакет с репозитория nginx.

nginx

Создаём файл репозитория.

cd /etc/apt/sources.list.d touch nginx.list

Для Ubuntu 20 прописываем внутри:

deb https://nginx.org/packages/ubuntu/ focal nginx deb-src https://nginx.org/packages/ubuntu/ focal nginx

nginx

Обновляем локальные репозитории:

apt update

Находим текст ошибки:

Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY $key

The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY $key

Собственно, указанный ключ нам и нужен.

linux

Копируем этот ключ и регистрируем:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62

nginx

Вот теперь можно обновлять nginx.

apt update apt install nginx

nginx

Проверяем что установилось:

dpkg -l | grep nginx

linux

Стоит nginx 1.22, условия задания соблюдены.

systemctl stop nginx systemctl start nginx

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *