Усталюйце 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 уключаны, нам таксама трэба ўсталяваць разумны перыяд чакання, каб пазбегнуць доўгай занятасці сервернага ўводу. Наступны прыклад змяшчае некалькі асноўных налад 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>