Назад | Перейти на главную страницу

Обновите nginx из исходников

На debian Jessie я установил nginx через apt-get. Теперь я хочу перейти на последнюю версию nginx, чтобы воспользоваться преимуществами http2. Мне не удалось добавить его в файл source.list, потому что это Raspberry PI. Я скачал, скомпилировал без проблем, но установил в другом месте.

Теперь, когда я nginx -v У меня 1.6.3, но если я /usr/local/sbin/nginx -v Получаю 1.11.2.

Я могу указать путь установки во время настройки, но я не знаю, что я хочу сделать. Я хотел бы установить 1.11 поверх 1.6 и не потерять все файлы и конфигурацию моего сайта. Как мне обновить nginx из исходников и сохранить всю мою старую конфигурацию?

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

Вы используете стабильную версию Debian, потому что вы предпочитаете стабильное дерево Debian. Он отлично работает, есть только одна проблема: программа немного устарела по сравнению с другими дистрибутивами. Вот тут-то и пригодятся бэкпорты.

Такой путь также предоставит вам обновления безопасности, о которых вы в противном случае позаботились бы сами.

Осталось одно предостережение: текущая версия nginx в j-bpo построен против openssl 1.0.1, а это значит, что вы не сможете использовать ALPN, но вместо того, чтобы NPN, таким образом, вы не могли служить HTTP/2 к Chrome пользователей, потому что разработчики сбросили NPN поддерживают недавно, но он будет работать для людей, использующих Firefox, например. Я описал обходной путь здесь. Если это возможно, подождите еще около четырех недель: nginx в j-bpo будет восстановлен против openssl 1.0.2, так что вам больше не нужен этот обходной путь.

Итак, приступим (пока):

  • Добавить jessie-backports в ваш sources.list. Это описано здесь.

  • Настроить APT pinning, чтобы извлекать только указанные вами пакеты jessie-backports:

    Поместите что-нибудь вроде:

    Package: *
    Pin: release n=jessie
    Pin-Priority: 900
    
    Package: * 
    Pin: release a=jessie-backports
    Pin-Priority: 100
    

    в /etc/apt/preferences. Если этого файла еще нет, создайте его.

  • Бегать apt-get update.

  • Бегать apt-get install -t jessie-backports nginx установить nginx из jessie-backports.