🐹 CentOS 7: Настройка web-сервера Nginx и выход в Интернет со своим доменным именем.

Содержание:

1. Введение.
2. Что такое CentOS 7 Linux?
3. Установка и настройка CentOS 7.
4. Настройка и использование SSH.
5. Как временно или навсегда отключить SELinux.
6. Настройка часового пояса и синхронизации времени.
7. Подготовка жестких дисков.
8. Установка и настройка Postfix 3.
9. Работа со S.M.A.R.T. Утилита smartmontools. Утилита smartctl.
10. Первичная настройка брандмауэра web-сервера.
11. Установка и настройка nginx.

11.1. Репозиторий, установка и запуск nginx.
11.2. Модификация заглушки nginx.
11.3. Настройка конфигурации nginx.
11.4. Создание структуры каталогов nginx.
11.5. Конфигурация виртуального хоста.
11.6. Ключ для сохранения совершенной прямой секретности.

12. Установка и настройка php-fpm.sock — Fastcgi Process Manager.
13. Установка и настройка Let’s Encrypt.
14. Установка и настройка системы баз данных MariaDB.
15. Установка и настройка WordPress.
16. Ротация логов web-сервера Nginx.
17. Протоколы шифрования и шифрование.
18. Установка и настройка Redis.
19. Установка и настройка Prometheus Server.
20. Установка и настройка Grafana Server.
21. Организация резервного копирования на Яндекс.Диск.
22. Установка и настройка системы резервного копирования BackupPC.
23. Оригиналы источников информации.


На чем было собрано:

  1. CentOS 7 Linux x86_64 release 7.8.2003.
  2. Nginx 1.19.2.
  3. WordPress 5.5.1.
  4. PHP Version 7.4.10.
  5. MariaDB Server version 10.5.5.
  6. Ноутбук Emachines G525.

1. Введение.

В этой инструкции будет собран весь, доступный мне, актуальный материал (на момент осени 2020 года) по созданию и выводу в эфир web-сервера на базе CentOS 7, nginx, MariaDB и php-fpm. Максимально подробно рассмотрим все основные этапы по созданию и тонкой настройке данной информационной системы, организуем резервное копирование.

Статья будет разбита на информационные разделы и фрагменты с ссылками на другие разделы и фрагменты моего сайта. Это связано с тем, что все разделы приходится часто дополнять новыми интересными деталями, а так же актуализировать по меня обновлений версий любимых программ. Так же они могут быть использованы и в других информационных блоках, поэтому по ходу чтения данной инструкции настраивать некоторые модули web-сервера вы будете по указанным в инструкции ссылкам.

Некоторые пропущенные разделы инструкции я обязательно дополню позднее. Хочется сделать максимально качественное и полное руководство.

2. Что такое CentOS 7 Linux?

Для тек кто хочет узнать почему я люблю и уважаю CentOS 7 предлагаю ознакомиться с операционной системой CentOS 7. На этой редакции Linux и будет развернуть web-сервер.

Думаю, что данна информация будет полезна перед началом настройки web-сервера.

Ссылка: «CentOS 7: Что такое CentOS 7 Linux».

3. Установка и настройка CentOS 7.

Данный раздел зарезервирован для инструкции по установке и настройке CentOS 7, которая здесь скоро появится.

4. Настройка и использование SSH.

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

Важным шагом будет настройка ssh доступа и правил работы с ней.

Ссылка: «CentOS 7: Настройка и использование SSH — Secure Shell».

Первоначально вполне достаточно сделать создание пары RSA-ключей и начать пользоваться сервером.

5. Как временно или навсегда отключить SELinux.

Когда вы устанавливаете CentOS 7, функция SELinux включена по умолчанию, из-за этого некоторые приложения в вашей системе могут фактически не поддерживать этот механизм безопасности. Чтобы такие приложения функционировали нормально, вам необходимо отключить SELinux.

Ссылка: «CentOS 7: Как временно или навсегда отключить SELinux».

Конечно в интернете имеется много способов настройки и эксплуатации этой системы, но в данной инструкции я, пока что, настраивать SELinux не буду.

6. Настройка часового пояса и синхронизации времени.

Очень важно иметь правильно настроенную систему учета времени на сервере, потому что сервер — существо электромеханическое и все процессы в нём ориентируются на точно время. Например, резервное копирование, мониторинг и синхронизация с другими системами в сети.

Чтобы время на сервере CentOS 7 соответствовало вашему часовому поясу, его можно изменить вручную.

Ссылка: «CentOS 7: Настройка часового пояса. Утилита tzdata».

Для корректной работы сервера требуется правильно настроить его синхронизацию времени по Network Time Protocol.

Внимание! В CentOS 7 данная утилита уже идет в комплекте даже при минимальной комплектации установщика. Устанавливать отдельно в CentOS 7 утилиту chrony не надо. В CentOS 8 данная утилита не идет в комплекте и потребуется её установка и настройка.

Ссылка: «CentOS 7: Настройка синхронизация времени по Network Time Protocol. Утилита ntp».

7. Подготовка жестких дисков.

На этом этапе очень удобно начинать планировать структуру расположения файловой системы сайта.

Например, всё содержимое сайта держать на скоростных дисках SSD, а ведение логов и накоплению метрических данных поручить HDD, с целью экономии ресурсов SSD.

Эти инструкции могут быть вам полезны:

8. Установка и настройка Postfix 3.

Во время работы сервера будет происходить много интересных событий, о которых вас будут уведомлять соответствующие программные службы. Так как сервер не знает куда вам отправлять уведомления, то он всё будет складировать в ваш виртуальный «почтовый ящик» у себя в памяти. Программа Postfix 3 требуется для отправки электронной почты с внутреннего системного «почтового ящика» на ваш внешний почтовый ящик.

Ссылка: «CentOS 7: Программа Postfix 3 для отправки электронной почты с внутреннего системного «почтового ящика».

9. Работа со S.M.A.R.T. Утилита smartmontools. Утилита smartctl.

Что самое важное на web-сервере? Правильно — ваша информация, которую вы старательно в него вводите и верстаете! Хранится информация на дисках, диски под постоянной нагрузкой и со временем их ресурс расходуется, они начинают давать сбои и информация может пропасть. Чтобы не быть внезапно опечаленным выходом жесткого диска из строя и пропажей ценной информации, следует настроить систему слежения на исправностью жестких дисков — S.M.A.R.T.

Ссылка: «CentOS 7: Работа со S.M.A.R.T. Утилита smartmontools. Утилита smartctl.».

10. Первичная настройка брандмауэра web-сервера.

Для работы web-сервера требуется пробросить 80 порт и 443 порт через брандмауэр.

Ссылка: «CentOS 7: Первичная настройка брандмауэра web-сервера. Проброс 80 порта и 443 порта. Настройка firewalld или iptables».

11. Установка и настройка nginx.

11.1. Репозиторий, установка и запуск nginx.

Для установки самой свежей стабильной версии nginx на CentOS 7 подключим оригинальный официальный репозиторий. Лучше использовать оригинальный официальный репозиторий nginx по следующей причине — удобное начальное расположение и формат конфигурационных файлов. Устанавливая софт из официальных репозиториев можно быть уверенным, что имеешь самую свежую и актуальную версию nginx, так и расположение и формат конфигурационных файлов будет одинаковый во всех системах.

Банальный пример. Если ставить nginx из официального репозитория CentOS 8, настройка дефолтного виртуального хоста будет прямо в основном конфиге nginx.conf. Мне лично это не удобно, так как в этом файле я храню набор настроек без привязки к виртуальным хостам. Если установить nginx из официального репозитория, конфигурация дефолтного хоста будет в отдельном конфиге default.conf.

Подключаем репозиторий nginx в CentOS 7. Лучшее использовать mainline версию. Она имеет все нововведения на борту и достаточно стабильна. Если вы хотите стабильную версию, то используйте репозиторий stable.

Создадим конфигурационный файл репозитория /etc/yum.repos.d/nginx.repo.

# mcedit /etc/yum.repos.d/nginx.repo

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Теперь устанавливаем nginx на сервер.

# yum -y install nginx

Запускаем nginx и добавляем в автозагрузку.

# systemctl start nginx
# systemctl enable nginx

Проверим старт nginx в системе:

# systemctl status nginx

Проверяем, запустился ли web-сервер. Для этого идем по ссылке http://ваш-IP-адрес/. Вы должны увидеть стандартную страницу заглушку.

Вы должны увидеть стандартную страницу заглушку, если страница не открывается, то скорее всего вы не настроили брандмауэр на порт 80.

11.2. Модификация заглушки nginx.

Примечание! Если вам не нравится данная стандартная скучная картинка, то ее всегда можно разнообразить красивой заглушкой на HTML5. Вот инструкция «Nginx: Модификация базовой страницы приветствия. Заглушка на HTML5».

11.3. Настройка конфигурации nginx.

Создадим резервную копию главного файла конфигурации nginx:

# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.original

Теперь выполним небольшую начальную настройку главного конфигурационного файла nginx.conf. В нём содержится общая информация по работе nginx, правила шифрования информации при передаче клиенту, время ожидания клиентов, степень сжатия информации для передачи и так далее.

Начнем с модификации основного конфигурационного файла/etc/nginx/nginx.conf.

# mcedit /etc/nginx/nginx.conf

Конфигурация nginxnginx.conf:

Разверните для просмотра содержимого nginx.conf.
user  nginx;
worker_processes auto;
worker_cpu_affinity auto;
worker_rlimit_nofile 30000;
pid /var/run/nginx.pid;
pcre_jit on;

events {
    worker_connections 8192;
    multi_accept on;
}

http {

    # Basic #######################
    
    sendfile			on;
    tcp_nopush			on;
    tcp_nodelay			on;
    reset_timedout_connection 	on;
    keepalive_timeout 		120;
    keepalive_requests		1000;
    types_hash_max_size		2048;
    server_tokens		off;
    send_timeout		30;
    client_body_timeout		30;
    client_header_timeout	30;
    server_names_hash_max_size	4096;

    # Limits ######################
    
    client_max_body_size	10m;
    client_body_buffer_size	128k;
    client_body_temp_path	/var/cache/nginx/client_temp;

    proxy_connect_timeout	60;
    proxy_send_timeout		60;
    proxy_read_timeout		60;
    proxy_buffer_size		4k;
    proxy_buffers		8 16k;
    proxy_busy_buffers_size	64k;
    proxy_temp_file_write_size	64k;
    proxy_temp_path		/var/cache/nginx/proxy_temp;

    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
    # Logs ########################

    log_format  main	'$remote_addr - $host [$time_local] "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" "$http_x_forwarded_for"'
        'rt=$request_time ut=$upstream_response_time '
        'cs=$upstream_cache_status';
    log_format full	'$remote_addr - $host [$time_local] "$request" '
               'request_length=$request_length '
               'status=$status bytes_sent=$bytes_sent '
               'body_bytes_sent=$body_bytes_sent '
               'referer=$http_referer '
               'user_agent="$http_user_agent" '
               'upstream_status=$upstream_status '
               'request_time=$request_time '
               'upstream_response_time=$upstream_response_time '
               'upstream_connect_time=$upstream_connect_time '
               'upstream_header_time=$upstream_header_time';

    access_log  /var/log/nginx/access.log  main;
    error_log  /var/log/nginx/error.log;

    # Gzip ########################

    gzip on; 
    gzip_static on; 
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml application/x-font-ttf;
    gzip_comp_level 9;
    gzip_proxied any;
    gzip_min_length 1000;
    gzip_disable "msie6";
    gzip_vary on;

    etag off;

    # Cache #######################

    #proxy_cache_valid 1m;
    #proxy_cache_key $scheme$proxy_host$request_uri$cookie_US;
    #proxy_cache_path /web/sites/nginx_cache levels=1:2 keys_zone=main:1000m;

    # Zone limits ################

    limit_conn_zone $binary_remote_addr zone=perip:10m;
    limit_req_zone $binary_remote_addr zone=lim_5r:10m rate=5r/s; # lim for dynamic page
    limit_req_zone $binary_remote_addr zone=lim_1r:10m rate=1r/s; # lim for search page
    limit_req_zone $binary_remote_addr zone=lim_10r:10m rate=10r/s;

    # SSL #########################

    ssl_session_cache shared:SSL:50m;
    ssl_session_cache shared:TLS:2m;
    ssl_buffer_size 4k;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
    ssl_session_tickets on;

# Протоколы шифрования только современные
    ssl_protocols TLSv1.2 TLSv1.3;

# Протоколы шифрования все
#   ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;

# Шифрование почти отсутствует
#   ssl_ciphers 'EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM:ECDH+AES256:DH+AESGCM:DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS';

# Шифрование сильное
#   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_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384';
    ssl_ecdh_curve secp384r1;

    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_stapling on;
    ssl_stapling_verify on;
    add_header Strict-Transport-Security 'max-age=63072000; includeSubDomains; preload' always;
    resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001]; # Cloudflare

    include /etc/nginx/conf.d/*.conf;

    # For monitoring ###########
    
    server {
    listen 127.0.0.1:80;
    server_name status.localhost;
    keepalive_timeout	0;
    allow	127.0.0.1;
    deny	all;
    access_log	off;

    location /server-status {
    stub_status	on;
        }

    location /status {
    access_log off;
    allow 127.0.0.1;
    deny all;
    include fastcgi_params;
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }
}

Сохраните конфиг и проверьте его корректность командой:

# nginx -t

Отзыв:

Если ошибок нет, то можно применить.

# nginx -s reload

11.4. Создание структуры каталогов nginx.

Теперь создадим структуру каталогов для сайтов. Я обычно все сайты размещаю отдельно на отдельно смонтированном под эти цели SSD, например в /web/sites. Это может быть как каталог, так и специально выделенный скоростной диск.

И так, создадим пару каталогов: www — для файлов сайта, log — для ведения логирования событий для этого сайта.

# mkdir -p /web/sites/site1/{www,log}

Разрешим nginx там хозяйничать:

# chown -R nginx:nginx /web/sites/

Создадим файл конфигурации nginx для виртуального хоста сайта site1.

Внимание! Я сразу буду делать их с учетом https, который мы настроим позже. Так что после создания НЕ НАДО перезапускать web-сервер и проверять работу — будут ошибки, потому что требуется еще создать сертификаты шифрования. Виртуальный хост сайта показан на примере wordpress. Конфигурация собрана на основе рекомендаций из официальной документации конкретно для web-сервера nginx .

# mcedit /etc/nginx/conf.d/site1.conf

11.5. Конфигурация виртуального хоста.

Конфигурация для основного сайта — /etc/nginx/conf.d/site1.conf:

Разверните для просмотра содержимого site1.conf.
server {
    listen 443 ssl http2;
    server_name site1.ru;
    root /web/sites/site1/www/;
    index index.php index.html index.htm;
    access_log /web/sites/site1/log/access.log main;
    error_log /web/sites/site1/log/error.log;
    ssl_certificate /etc/letsencrypt/live/site1.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/site1.ru/privkey.pem; # managed by Certbot
    ssl_trusted_certificate /etc/letsencrypt/live/site1.ru/fullchain.pem;

    location / {
    try_files $uri $uri/ /index.php?$args;
    }

    location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
    access_log off;
    expires max;
    }

    location ~ \.php$ {
    try_files  $uri =404;
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param DOCUMENT_ROOT /web/sites/site1/www/;
    fastcgi_param SCRIPT_FILENAME /web/sites/site1/www$fastcgi_script_name;
    fastcgi_param PATH_TRANSLATED /web/sites/site1/www$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    fastcgi_param HTTPS on;
    fastcgi_intercept_errors on;
    fastcgi_ignore_client_abort off;
    fastcgi_connect_timeout 60;
    fastcgi_send_timeout 180;
    fastcgi_read_timeout 180;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    }

    location = /favicon.ico {
    log_not_found off;
    access_log off;
    }

    location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
    }

    location ~ /\.ht {
    deny all;
    }

    location = /xmlrpc.php {
          deny all;
          access_log off;
          log_not_found off;
    }
}

server {
     listen 443 ssl http2;
     server_name  www.site1.ru;
     return 301 https://site1.ru$request_uri;

     ssl_certificate		/etc/letsencrypt/live/www.site1.ru/fullchain.pem;
     ssl_certificate_key	/etc/letsencrypt/live/www.site1.ru/privkey.pem;
     ssl_trusted_certificate	/etc/letsencrypt/live/www.site1.ru/fullchain.pem;
}

server {
    if ($host = site1.ru) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    server_name site1.ru;
    root /web/sites/site1/www/;
    index index.php index.html index.htm;
    access_log /web/sites/site1/log/access.log main;
    error_log /web/sites/site1/log/error.log;

    location / {
    return 301 https://site1.ru$request_uri;
    }
}

server {
     listen  80;
     server_name  www.site1.ru;
     return 301 https://site1.ru$request_uri;
}

В данной конфигурации настроены все необходимые редиректы, при этом отключен редирект файла robots.txt. Он отдельно отдается по http и https.

11.6. Ключ для сохранения совершенной прямой секретности.

Сохраняем конфигурации хостов и движемся дальше. Пока nginx перезапускать не надо. Некоторые сущности, которые упоминаются в конфигурации, еще не настроены. Одну из них сразу добавим, чтобы не забыть. Нам надо сформировать файл dhparam.pem. Процесс длится долго, до получаса на слабых компьютерах. Этот файл нужен для повышения безопасности и получения максимального рейтинга ssl.

Теперь о ssl_dhparam он располагается в каталоге /etc/ssl/certs/dhparam.pem — это нужно, чтобы у нас заработал Forward Secrecy. Прямая секретность означает, что если третья сторона узнает какой-либо сеансовый ключ, то она сможет получить лишь доступ к данным, защищенным лишь этим ключом. Для сохранения совершенной прямой секретности ключ, используемый для шифрования передаваемых данных, не должен использоваться для получения каких-либо дополнительных ключей. Также, если ключ, используемый для шифрования передаваемых данных, был получен (derived) на базе какого-то еще ключевого материала, этот материал не должен использоваться для получения каких-либо других ключей.

Сгенерировать ключ можно так:

# openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Запускаем:

Долго-долго ждем… Минут 5-30. Скорость генерации зависит от реальных физических параметров вашего центрального процессора.

Ура! Сгенерировался-таки.

12. Установка и настройка php-fpm.sock — Fastcgi Process Manager.

Fastcgi Process Managerphp-fpm менеджер процессов, используется в связке с nginx + php.

Ссылка: «CentOS 7: Установка PHP 7.4 и настройка php-fpm.sock — Fastcgi Process Manager для Nginx».

13. Установка и настройка Let’s Encrypt.

Наша следующая задача — получить бесплатные сертификаты шифрования.

Ссылка: «CentOS 7: Настройка бесплатного ssl-сертификата Let’s Encrypt».

14. Установка и настройка системы баз данных MariaDB.

Для хранения информации на сервере используется MariaDB — ответвление от системы управления базами данных MySQL.

Ссылка: «CentOS 7: Установка и настройка системы баз данных MariaDB. Создание базы данных.»

15. Установка и настройка WordPress.

Для работы над сайтом требуется движок сайта, например, WordPress.

Ссылка: «CentOS 7: Установка и настройка WordPress».

16. Ротация логов web-сервера Nginx.

Еще одна важная вещь в настройке web-сервера — ротация логов виртуальных хостов. Если этого не сделать, то через какое-то, обычно продолжительное, время возникает проблема в связи с огромным размером лог-файлов на жестких дисках.

Ссылка: «CentOS 7: Ротация логов web-сервера Nginx».

17. Протоколы шифрования и шифрование.

На этом этапе работы требуется решить, какие протоколы передачи информации будет использовать ваш сервер Nginx.

TLS (англ. Transport Layer SecurityПротокол защиты транспортного уровня), как и его предшественник SSL (англ. Secure Sockets SayerСлой защищённых сокетов), — криптографические протоколы, обеспечивающие защищённую передачу данных между узлами в сети Интернет.

Протестируем работу безопасности передачи данных с нашего сайта в Интернет по методике сайта ssllabs.com – Бесплатная онлайн-служба выполняет глубокий анализ конфигурации любого web-сервера SSL в общедоступном Интернете.

Если использовать старые протоколы TLS 1.0 и TLS 1.1, но мы этого делать не будем!

ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;

Итоговая оценка «B«, как видно оценка была снижена от того, что наш сайт поддерживает старые протоколы TLS 1.0 и TLS 1.1.

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

Мы с вами в этой инструкции используем только новые протоколы TLS 1.2 и TLS 1.3:

ssl_protocols TLSv1.2 TLSv1.3;

При этом мы точно знаем что у всех клиентов сайт открывается настолько быстро, насколько это возможно без использования слабых шифров: все современные браузеры используют ECDHE.

Можно еще качнуть «силу» заменой строки алгоритмов на такие:

ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384';
ssl_ecdh_curve secp384r1;

Примечание! В представленной в этой инструкции nginx.conf настройки именно такие.

Внимание! Если результаты теста прокрутить до раздела Handshake Simulation, то мы увидим что на наш сайт не попадут пользователи IE любых версий младше 11, Java до SE 8, Android до версии 4.3 и даже некоторые версии Safari. Про софт, собранный с OpenSSL версии младше 0.9.8, даже и идет речи.

Есть и ещё одна проблема: производительность. Наш ключ на 4096 бит непосредственно влияет на скорость установки соединения, при этом не слишком усиливает защиту. Шифры на 256 бит тоже не помогают ускорить соединение, что касается мобильных устройств с маломощными процессорами и прочих клиентов без AES-NI (аппаратного ускорения).

Подпись на стороне сервера делается в семь раз медленнее. Проверка подписи на клиенте — в 3.6 раза медленнее. На другом железе тенденция остаётся та же. Этот проигрыш в скорости — плата за усиление стойкости шифра на какие-то 16%.

Но для тех кто считает, что устаревшим технологиям на сайте не место, можно и разогнаться до «соточки» в категории А+!

18. Установка и настройка Redis.

Данный раздел зарезервирован для инструкции по установке и настройке Redis.

19. Установка и настройка Prometheus Server.

Данный раздел зарезервирован для инструкции по установке и настройке Prometheus Server.

20. Установка и настройка Grafana Server.

Данный раздел зарезервирован для инструкции по установке и настройке Grafana Server.

21. Организация резервного копирования на Яндекс.Диск.

Данный раздел зарезервирован для инструкции по установке и настройке Яндекс.Диска.

22. Установка и настройка системы резервного копирования BackupPC.

Данный раздел зарезервирован для инструкции по установке и настройке BackupPC.

23. Оригиналы источников информации.

  1. serveradmin.ru «Настройка web сервера nginx, php-fpm, php7 на CentOS 8» от 28.02.2020.
  2. gist.github.com «Nginx SSL/TLS configuration for «A+» Qualys SSL Labs rating».
  3. habr.com «OpenSSL, ssl_ciphers и nginx: прокачиваем на 100%».
  4. ru.wikipedia.org «TLS».

Читайте также: