Установите Apache на CentOS7

Официальная ссылка

Официальный веб-сайт Документация по продукту HTTPS Gzip

Выполните установку

            yum -y install libmcrypt libmcrypt-devel mcrypt mhash
yum -y install httpd
        

Измените файл конфигурации

После завершения установки нам необходимо внести некоторые изменения в файл конфигурации. Конкретный контент модификации обычно включает: привязанный IP-адрес и порт, передачу сжатия gzip, количество одновременных подключений и SSL. Давайте объясним их один за другим ниже.

Измените привязанный IP-адрес и порт

IP-адрес и порт по умолчанию, которые прослушивает Apache, - 0.0.0.0:80. Если нам нужно изменить отслеживаемый IP-адрес и порт, мы можем изменить его напрямую. Если нам нужно связать несколько портов, мы также можем добавить их. В следующем примере мы связываем порты 80 и 443. Порт 443 - это номер порта по умолчанию для HTTPS.

            Listen 80
Listen 443 https
        

Открытая передача gzip

Поскольку производительность ЦП нашего компьютера относительно высока, узкое место обычно проявляется в пропускной способности сети, поэтому мы можем включить передачу сжатия gzip. Всего существует 9 уровней сжатия, мы можем выбрать в зависимости от производительности нашего сервера и найти наиболее подходящий уровень. В приведенном ниже примере мы установили уровень 1. Типы сжатых файлов: html, xml, php, css, js, мы также можем добавлять сжатые типы файлов по мере необходимости.

            <IfModule mod_deflate.c>
    DeflateCompressionLevel 1
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
    AddOutputFilter DEFLATE js css
</IfModule>
        

Настроить KeepAlive

Функция KeepAlive состоит в том, чтобы поддерживать соединение клиента и сервера в течение определенного периода времени. Когда мы открываем веб-страницу, нам обычно необходимо загрузить основной контент, js, css и изображения. Поскольку каждый ресурс должен инициировать отдельный HTTP-запрос, мы включаем KeepAlive, чтобы сократить время, необходимое для каждого запроса, чтобы установить ссылку TCP / IP. Но у KeepAlive есть и недостатки. Это приведет к тому, что ресурсы ввода-вывода сервера будут заняты, поэтому нам нужно выбрать, включать ли KeepAlive, в зависимости от реальной ситуации. Если KeepAlive включен, нам также необходимо установить разумный тайм-аут, чтобы сервер IO не был занят в течение длительного времени. Следующий пример содержит несколько основных настроек KeepAlive.

            KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
        

Настроить количество одновременных

Разумная конфигурация количества одновременных пользователей может значительно улучшить пропускную способность сервера. Обычно наш Apache работает в режиме mpm_prefork. Нам нужно разумно настроить несколько ключевых параметров. На что нам нужно обратить внимание, так это то, что максимальное количество подключений не должно быть слишком маленьким, слишком маленькое приведет к отклонению большого количества пользовательских запросов при высоком уровне параллелизма. Разумное значение, которое мы устанавливаем, должно относиться к процессору и памяти сервера. Пока ресурсов достаточно, мы должны установить его как можно больше, но если мы установим его слишком большим, ресурсы сервера будут исчерпаны, и Apache также выйдет из строя.

            <IfModule mpm_prefork_module>
    StartServers         10
    MinSpareServers      25
    MaxSpareServers      50
    ServerLimit          1500
    MaxClients           1000
    MaxRequestsPerChild  3000
</IfModule>
        

Настроить SSL

На большинстве веб-сайтов теперь включен SSL для поддержки безопасных соединений HTTPS. Преимущество HTTPS в том, что контент во время передачи зашифрован, поэтому нет необходимости беспокоиться об утечке информации из-за перехвата другими. Перед включением SSL мы должны сначала подать заявку на сертификат.После того, как мы получим сертификат, обратитесь к следующей конфигурации, чтобы завершить настройки SSL.

            <VirtualHost *:443>
    ServerAdmin www.test.com
    ServerName www.testl.com
    DocumentRoot  /var/www/test
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on
    SSLCertificateFile /etc/httpd/conf/cert/public.crt
    SSLCertificateKeyFile /etc/httpd/conf/cert/1533528967430.key
    SSLCertificateChainFile /etc/httpd/conf/cert/chain.crt
    AllowEncodedSlashes on
    <Directory "/var/www/test.com">
         Options FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
    </Directory>
</VirtualHost>