Проведемо налаштування 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 і включили його.
Щоб включити TLS 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 завершена.