Рубрики
Uncategorized

Nginx с поддержкой бротлей на Centos 6

Поддержка окончания программного обеспечения для жизни. Теги с DevOps, Howto, Software, советы.

Я начал новую работу 6 недель назад, и я все еще изучаю окружающую среду. Вчера я получил новую задачу, и это была проблема, которая на некоторое время отскочила. Проблема казалась достаточно проста, включила броти на виртуальном хосте. Это история того, насколько просто не может быть такой простой.

Centos 6 — конец жизни по состоянию на 2020 ноября. После небольшого обсуждения план — продолжать расследовать, если мы сможем сделать это как слой, пока все решение не будет переработано.

Итак, как можно было бы расследовать, как это сделать? Оказывается, это не так тривиально, и даже только начинать расследование можно сложно. Моя первая мысль была, начать экземпляр докера Так что я могу ткать вокруг и попробовать различные RPM.

Docker Pult Centos: 6.7 Отлично! Docker Run -Ti Centos: 6.7

Cool, у меня есть подсказка, теперь что?

После поиска в Интернете я вижу, что NGINX.ORG имеет RPM пакеты. Я попробую один и посмотрите, есть ли у него поддержка броти.

Curl -lo https://nginx.org/packages/mainline/cents/6/x86_64/rpms/nginx-1.19.5-1.el6.ngx.x86_64.rpm. Curl: (35) Ошибка подключения SSL Connect

WAT? Хорошо, может быть, сертификаты на этом 2-до докера (я проверил Docker Hub) устарел. Curl -k То же самое и получите ту же ошибку. WTF? Добавьте Чтобы скрутить и увидеть сообщение Libnss * Предупреждение: игнорирование значения SSL.verifyhost Ну что-то не то? На данный момент я бормочу под дыханием о том, как Debian/Ubuntu использует OpenSSL, связанный скручиваемость по умолчанию, а не Libnss И мне интересно, вели себя бы то же самое.

Как я пишу это, я понимаю, что, возможно, я должен был использовать более недавние Centos 6 Docker Image, 6.10, возможно,. К сожалению, я не такой опыт с Centos, как я должен быть. Часть этого удовольствия — это дайвинг и обучение. Я использовал 6.7, потому что это то, что этот сервер по вопросу говорит, что это так.

Хорошо, так что новая проблема …

yum update говорит, что не может сделать это.

$ yum update
Loaded plugins: fastestmirror
Setting up Update Process
Loading mirror speeds from cached hostfile
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base

Хорошо, некоторые поиски говорят мне использовать BaseUrl вместо зеркальный список И что сейчас на Vault.Centos.org. . Я пытаюсь это и получить новую ошибку: http://vault.centos.org/centos/6/oS/X86_64/Repodata/Repomd.xml: [Errno 14] CENER CERT не может быть проверена или неверно проверяется Да, это говорит http:, но порт 80 просто перенаправляет в порт 443 И тогда мы получаем ошибку сертификатов. У нас есть улов-22. Нам нужно обновить наш пакет, чтобы получить новые сертификаты, но нам нужны новые сертификаты для обновления нашей пакеты. Нам нужно обновить наш пакет, чтобы получить новые сертификаты, но нам нужны новые сертификаты для обновления нашей пакеты. Нам нужно обновить наш пакет, чтобы получить новые сертификаты, но нам нужны новые сертификаты для обновления нашей пакеты. Нам нужно обновить наш пакет, чтобы получить новые сертификаты, но нам нужны новые сертификаты для обновления нашей пакеты. кашель отель

(Обновление: я делаю это достаточно часто, что редактирование этого файла занимает слишком длинное И так есть это: Sed -i: \/\/Vault/; S/MirrorList/# MoxorList/'/etc/yum.repos.d/centos-base.repo Несомненно

Для решения мне повезло. Я знал, чтобы попытаться получить RPM CA-сертификаты вручную и установить его без ням. Хуже прийти к худшему, я мог бы загрузить его на другой хост и скопировать его с Docker CP или используйте NetCat или Python Simple Server или поместите его на веб-сервере Non-TLS или любой другой метод перемещения данных. Я был вручную просматривать репо и получил этот URL Curl -lo https://chive.kernel.org/centos-vault/6.10/UPDATES/X86_64/packages/Ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm И получается, что Cert обслуживающий Archive.kernel.org был приемлемым.

RPM -U ./ca-cert_rpm.

И теперь я могу Обновление Yum; yum. Обновить

Поиск Поиск Поиск, поиск в Интернете, и вы не найдете четких ответов. Есть сообщения о компиляции сами. Есть посты об использовании подписки REPO. ( https://www.getpagespeed.com )

Кстати, эта подписка REPO также имела сообщение в блоге, которое помогло подтвердить мои выводы выше: https://www.getpagespeed.com/server-setup/how-to-fix-yum-after-centos-6-went-eol вместе с https://forums.centos.org/viewtopic.php?f=13&t=78238 Что подтвердило то, что я догадался об обновлении сертификатов.

Теперь моя первая мысль была, Nginx имеет это по умолчанию, верно? Используйте новейший пакет из Nginx.org. Посмотрите на все здесь: https://nginx.org/packages/centos/6/x86_64/RPMS/

Я Curl -lo. Эд (путро — глагол, увидимся), что https://nginx.org/packages/mainline/cents/6/x86_64/rpms/nginx-1.19.5-1.el6.ngx.x86_64.rpm .. И установил его ( rpm -i ./nginx*rpm ) и был разочарован тем, что у него не было броти ( строки/usr/sbin/nginx | grep brot подтверждает). (То есть после того, как я yum install initscripts как требуется этим пакетом)

Хорошо облом.

Продолжайте искать и читать …

Следующая вещь, которую я пытался, были пакетами из https://repo.aerisnetwork.com. Но, короче говоря, они не делали то, что я хотел или имел какой-то недостаток.

Далее я попробовал тыкать на пакетах из getpagepeed.com, я даже просмотрел в моем браузере, получил этот URL: https://extras.getpagespeed.com/redhat/6/mainline/x86_64/rpms/nginx-1.21.3-1.el6.ngx.x86_64.rpm И попытался загрузить и установить его, но на самом деле не скачал. Регистрация необходима и, по-видимому, они белиступит зарегистрированными пользователями по IP. Переход через эти обручи не будет устойчивым для меня в моей рабочей среде, поэтому я отбросил getpagepeed.com.

Я понятия не имею, почему, но дальше я попробовал это https://nginx.org/packages/centos/6/x86_64/rpms/nginx-1.18.0-2.el6.ngx.x86_64.rpm Старший, чем проницательный пакет nginx.org, но это не в Материна репо И я CentOS N00B достаточно, чтобы я не знаю разницы. Опять же, Строки/usr/sbin/nginx | Grep Brot ничего не показал, так что получил быстрый RPM -E Nginx Отказ

Далее я попробовал Curl -lo https://repo.aerisnetwork.com/archive/nginx-more-1.13.6-1.el6.x86_64.rpm и https://repo.aerisnetwork.com/archive/nginx-more-1.14.2-4.el6.x86_64.rpm Отказ (Не имею, почему я схватил 1,13 и 1.14.) Был куча различных пакетов Nginx на repo.aerisnetwork.com Для этого работало некоторые требования, поэтому я бегал yum install gd libxslt Но был еще случай libmaxminddb.so.0.

Далее я попробовал Repo.codeit.Guru пакеты. Я точно не вспоминаю, где я нашел этот репо. Я думаю, что это было несколько источников. Один из них был https://nixcp.com/brotli-compression-nginx/ . Я, наверное, также видел https://codeit.guru/en_us/2020/04/nginx-1-18-0-stable-with-brotli-support-tls-1-3-final-rfc-8446-built-Against-8446- 1-1G-FOR-RED-HAT-Enterprise-linux-and-centos/ Отказ Я был достаточно отчаянным, чтобы скопировать и страницате URL Root Repo и надежду на каталог CentOS 6. Был один!

curl -LO https://repo.codeit.guru/packages/mainline/centos/6/x86_64/nginx-1.19.5-1.el6.codeit.x86_64.rpm
rpm -i ./nginx-1.19.5-1.el6.codeit.x86_64.rpm

warning: ./nginx-1.19.5-1.el6.codeit.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 898b43f4: NOKEY
error: Failed dependencies:
    libbrotli = 1:1.0.7 is needed by nginx-1:1.19.5-1.el6.codeit.x86_64
    libmaxminddb.so.0()(64bit) is needed by nginx-1:1.19.5-1.el6.codeit.x86_64

curl -LO https://repo.codeit.guru/packages/mainline/centos/6/x86_64/libbrotli-1.0.7-1.codeit.el6.x86_64.rpm
rpm -i ./libbrotli-1.0.7-1.codeit.el6.x86_64.rpm 

Там, очевидно, поддержка броти, но и то же самое libmaxminddb.so.0 зависимость.

Теперь мне пришлось кратко забывать Nginx и сосредоточившись, где найти эту зависимость. Конечно, есть пакет?

$ yum install libmaxmindddb
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
No package libmaxmindddb available.
Error: Nothing to do
$ yum install libmaxmindddb-dev
...
No package libmaxmindddb-dev available.
$ yum install libmaxmindddb-devel
...
No package libmaxmindddb-devel available.

Требуется много поисков. Я задавался вопросом, был ли он в NGINX-Module-Geoip RPM, но нет.

Наконец, я нашел несколько комментариев в отношении EPEL. У меня не было включено Epel Reppo. Это не является частью хранилища AFAICT, но я смог найти веб-просмотр Epel и найти пакет.

curl -LO https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/Packages/l/libmaxminddb-1.1.1-5.el6.x86_64.rpm
rpm -i ./libmaxminddb-1.1.1-5.el6.x86_64.rpm 

А теперь пакет Nginx из CodeIt.Guru может быть установлен.

$ rpm -i ./nginx-1.19.5-1.el6.codeit.x86_64.rpm 
warning: ./nginx-1.19.5-1.el6.codeit.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 898b43f4: NOKEY
---------------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Please subscribe to nginx-announce mailing list to get
the most important news about nginx:
* http://nginx.org/en/support.html

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

---------------------------------------------------------------------------
$ rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default-ssl.conf.example
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/modules
/etc/nginx/nginx.conf
/etc/nginx/php.inc
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/etc/nginx/win-utf
/etc/rc.d/init.d/nginx
/etc/rc.d/init.d/nginx-debug
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.19.5
/usr/share/doc/nginx-1.19.5/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx
$ strings /usr/sbin/nginx | grep brot
ngx_http_brotli_static_module_ctx
ngx_http_brotli_filter_module
ngx_http_brotli_static_module
...

Посмотрите на эти красивые символы!

Следующая задача — обсудить с командой все причины, по которым мы должны Не Интегрируйте это в нашу среду и вместо этого мигрируйте Of Centos 6.

Оригинал: «https://dev.to/jrwren/nginx-with-brotli-support-on-centos-6-2ipj»