baltun
Администратор
- Сообщения
- 12.279
- Реакции
- 3.082
- Баллы
- 1.833
Поддержка протокола HTTP/2 заметно увеличивает скорость загрузки веб-сайтов и переходить на него, в данный момент, рекомендуется всем владельцам сайтов. Подавляющее большинство современных браузеров, обеспечивают поддержку нового протокола по умолчанию, кроме того HTTP/2 обратно совместим с протоколом HTTP/1.1.
Итак начнем, у нас есть в наличии:
Далее создаем новый каталог и загружаем OpenSSL 1.1.1p (июнь 2022) с официального сайта
Если требуется 3 версия. Создаем новый каталог и загружаем OpenSSL 3.0.4 (июнь 2022) с официального сайта
Загружаем Nginx 1.12.2
Для Centos 7
Для Centos 6
Загружаем Nginx 1.13.12
Для Centos 7
Для Centos 6
Загружаем Nginx 1.14.0
Для Centos 7
Для Centos 6
Загружаем Nginx 1.18.0
Для Centos 7
Загружаем Nginx 1.18.0
Для Centos 8
Загружаем Nginx 1.19.6
Для Centos 7
Перед компиляцией на Centos 8 требуется установить:
После этого перекомпилируем установленный Nginx, с библиотекой OpenSSL 1.1.1i процесс может занять довольно много времени, зависит от мощностей сервера.
Если требуется 3 версия. После этого перекомпилируем установленный Nginx, с библиотекой OpenSSL 3.0.4 процесс может занять довольно много времени, зависит от мощностей сервера.
Если при сборке сталкиваемся с такой ошибкой, наблюдается начиная с версии 1.13.6
Устанавливаем пакет и продолжаем сборку по инструкции:
И наконец устанавливаем собранный нами Nginx 1.12.2
Для Centos 7
Для Centos 6
Nginx 1.13.12
Для Centos 7
Для Centos 6
Nginx 1.14.0
Для Centos 7
Для Centos 6
Nginx 1.18.0
Для Centos 7
Nginx 1.18.0
Для Centos 8
После установки нужно будет установить также модуль:
Nginx 1.19.6
Для Centos 7
Если вы пересобрали пакет, то переустановить его можно так:
Понизить версию ниже можно так, для ISP Manager подойдет именно такая команда:
Проверим что у нас получилось
Чтобы проверить, что сайт работает по HTTP2, установите HTTP2 indicator для
Активируем HTTP2
Активируем HTTP3
Итак начнем, у нас есть в наличии:
- CentOS 7
- ISPmanager 5
- И большое желание получить HTTP/2 с поддержкой ALPN
Код:
yum -y groupinstall 'Development Tools'
yum -y install openssl-devel libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-devel
Далее создаем новый каталог и загружаем OpenSSL 1.1.1p (июнь 2022) с официального сайта
Код:
mkdir -p /opt/lib
cd /opt/lib
wget https://www.openssl.org/source/openssl-1.1.1p.tar.gz
tar -zxvf /opt/lib/openssl-1.1.1p.tar.gz -C /opt/lib
Если требуется 3 версия. Создаем новый каталог и загружаем OpenSSL 3.0.4 (июнь 2022) с официального сайта
Код:
mkdir -p /opt/lib
cd /opt/lib
wget https://www.openssl.org/source/openssl-3.0.4.tar.gz
tar -zxvf /opt/lib/openssl-3.0.4.tar.gz -C /opt/lib
Загружаем Nginx 1.12.2
Для Centos 7
Код:
rpm -ivh http://nginx.org/packages/centos/7/SRPMS/nginx-1.12.2-1.el7_4.ngx.src.rpm
Код:
rpm -ivh http://nginx.org/packages/centos/6/SRPMS/nginx-1.12.2-1.el6.ngx.src.rpm
Загружаем Nginx 1.13.12
Для Centos 7
Код:
rpm -ivh http://nginx.org/packages/mainline/centos/7/SRPMS/nginx-1.13.12-1.el7_4.ngx.src.rpm
Код:
rpm -ivh http://nginx.org/packages/mainline/centos/6/SRPMS/nginx-1.13.12-1.el6.ngx.src.rpm
Загружаем Nginx 1.14.0
Для Centos 7
Код:
rpm -ivh http://nginx.org/packages/centos/7/SRPMS/nginx-1.14.0-1.el7_4.ngx.src.rpm
Код:
rpm -ivh http://nginx.org/packages/centos/6/SRPMS/nginx-1.14.0-1.el6.ngx.src.rpm
Загружаем Nginx 1.18.0
Для Centos 7
Код:
rpm -ivh http://nginx.org/packages/centos/7/SRPMS/nginx-1.18.0-2.el7.ngx.src.rpm
Загружаем Nginx 1.18.0
Для Centos 8
Код:
dnf module list nginx
dnf module reset nginx
dnf module enable nginx:1.18
dnf install nginx
Загружаем Nginx 1.19.6
Для Centos 7
Код:
rpm -ivh http://nginx.org/packages/mainline/centos/7/SRPMS/nginx-1.19.6-1.el7.ngx.src.rpm
Перед компиляцией на Centos 8 требуется установить:
Код:
dnf install gcc curl-devel expat-devel gettext-devel openssl-devel zlib-devel pcre-devel
После этого перекомпилируем установленный Nginx, с библиотекой OpenSSL 1.1.1i процесс может занять довольно много времени, зависит от мощностей сервера.
Код:
sed -i "s|--with-http_ssl_module|--with-http_ssl_module --with-openssl=/opt/lib/openssl-1.1.1p|g" /root/rpmbuild/SPECS/nginx.spec
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
Если требуется 3 версия. После этого перекомпилируем установленный Nginx, с библиотекой OpenSSL 3.0.4 процесс может занять довольно много времени, зависит от мощностей сервера.
Код:
sed -i "s|--with-http_ssl_module|--with-http_ssl_module --with-openssl=/opt/lib/openssl-3.0.4|g" /root/rpmbuild/SPECS/nginx.spec
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
Если при сборке сталкиваемся с такой ошибкой, наблюдается начиная с версии 1.13.6
error: /home/builder/rpmbuild/SPECS/nginx.spec:28: bad %if condition
Устанавливаем пакет и продолжаем сборку по инструкции:
Код:
yum install redhat-lsb
И наконец устанавливаем собранный нами Nginx 1.12.2
Для Centos 7
Код:
rpm -Uvh /root/rpmbuild/RPMS/x86_64/nginx-1.12.2-1.el7_4.ngx.x86_64.rpm
Код:
rpm -Uvh /root/rpmbuild/RPMS/x86_64/nginx-1.12.2-1.el6.ngx.x86_64.rpm
Nginx 1.13.12
Для Centos 7
Код:
rpm -Uvh /root/rpmbuild/RPMS/x86_64/nginx-1.13.12-1.el7_4.ngx.x86_64.rpm
Код:
rpm -Uvh /root/rpmbuild/RPMS/x86_64/nginx-1.13.12-1.el6.ngx.x86_64.rpm
Nginx 1.14.0
Для Centos 7
Код:
rpm -Uvh /root/rpmbuild/RPMS/x86_64/nginx-1.14.0-1.el7_4.ngx.x86_64.rpm
Код:
rpm -Uvh /root/rpmbuild/RPMS/x86_64/nginx-1.14.0-1.el6.ngx.x86_64.rpm
Nginx 1.18.0
Для Centos 7
Код:
rpm -Uvh /root/rpmbuild/RPMS/x86_64/nginx-1.18.0-1.el7.ngx.x86_64.rpm
Nginx 1.18.0
Для Centos 8
После установки нужно будет установить также модуль:
Код:
dnf install nginx-mod*
Nginx 1.19.6
Для Centos 7
Код:
rpm -Uvh /root/rpmbuild/RPMS/x86_64/nginx-1.19.6-1.el7.ngx.x86_64.rpm
Если вы пересобрали пакет, то переустановить его можно так:
Код:
yum reinstall /root/rpmbuild/RPMS/x86_64/nginx-1.18.0-1.el7.ngx.x86_64.rpm
Понизить версию ниже можно так, для ISP Manager подойдет именно такая команда:
Код:
yum downgrade /root/rpmbuild/RPMS/x86_64/nginx-1.18.0-1.el7.ngx.x86_64.rpm
Проверим что у нас получилось
Код:
nginx -V
nginx version: nginx/1.15.9
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.1.1b 26 Feb 2019
TLS SNI support enabled
Чтобы проверить, что сайт работает по HTTP2, установите HTTP2 indicator для
У вас нет разрешения на просмотр ссылки, пожалуйста Вход или Регистрация
.Активируем HTTP2
Код:
server {
listen 443 ssl http2;
server_name domain.tld www.domain.tld;
ssl on;
ssl_certificate /etc/nginx/ssl/domain.crt;
ssl_certificate_key /etc/nginx/ssl/domain.key;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_prefer_server_ciphers On;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK;
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
}
Код:
server {
listen 443 http3 reuseport;
server_name domain.tld www.domain.tld;
ssl on;
ssl_certificate /etc/nginx/ssl/domain.crt;
ssl_certificate_key /etc/nginx/ssl/domain.key;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_prefer_server_ciphers On;
ssl_protocols TLSv1.2 TLSv1.3;
add_header QUIC-Status $quic;
add_header alt-svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=3600,h3-27=":443"; ma=2592000; v="46,43"';
ssl_stapling on;
}
Последнее редактирование: