Проведём настройку nginx для включения TLS 1.3 и использования модуля mod_pagespeed. Для начала установим зависимости:
yum install gcc-c++ pcre-devel zlib-devel GeoIP-devel make unzip git
Переходим в директорию:
cd /usr/local/src
Клонируем репозиторий OpenSSL, в нашем случае этом будет версия 1.1.1g:
git clone https://github.com/openssl/openssl.git && cd openssl && git checkout e2e09d9fba1187f8d6aafaa34d4172f56f1ffb72
Скачиваем nginx и извлекаем файлы из архива:
curl -L --progress http://nginx.org/download/nginx-1.19.0.tar.gz | tar xz
И скачиваем модуль mod_pagespeed:
wget https://ngxpagespeed.com/install && chmod +x ./install
Если у Вас установлен уже nginx, то текущую его конфигурацию можно посмотреть командой:
nginx -V
Далее выполняем компиляцию nginx с модулем и обновлённым TLS командой:
./install --dynamic-module --ngx-pagespeed-version latest-beta --nginx-version 1.19.0 -a '--with-http_v2_module --with-openssl=/usr/local/src/openssl --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-http_geoip_module'
При установке соглашаемся с заменой.
После установки нужно добавить в начало конфигурационного файла nginx /etc/nginx/nginx.conf строку:
load_module "modules/ngx_pagespeed.so";
И ниже в блок http {} строки:
pagespeed on; pagespeed FileCachePath /var/ngx_pagespeed_cache;
Так мы подключили к nginx модуль mod_pagespeed и включили его.
Чтобы включить TSL 1.3 нужно в конфигурационный файл nginx для сайта добавить строки в блок с ssl:
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_protocols TLSv1.3 TLSv1.2;
Перезагрузите nginx:
service nginx restart
Теперь можем проверить работу TLS 1.3 на сайте: https://www.ssllabs.com/ssltest/
Для проверки работоспособности модуля mod_pagespeed, выполняем запрос curl к Вашему сайту:
curl -Is https://your-site.com/
Вывод будет таким:
HTTP/2 200 server: nginx/1.19.0 content-type: text/html strict-transport-security: max-age=31536000; date: Mon, 23 Nov 2020 09:39:40 GMT x-page-speed: 1.13.35.2-0 cache-control: max-age=0, no-cache
Как видим, в заголовке присутствует строка «x-page-speed: 1.13.35.2-0», а значит модуль работает.
На этом настройка nginx для включения TLS 1.3 и использования модуля mod_pagespeed завершена.