Nainstalujte Apache na CentOS7

Oficiální reference

Oficiální webové stránky Dokumentace k produktu HTTPS Gzip

Proveďte instalaci

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

Upravte konfigurační soubor

Po dokončení instalace musíme provést nějaké změny v konfiguračním souboru. Obsah specifické úpravy obvykle zahrnuje: vázanou IP a port, přenos komprese gzip, počet souběžných připojení a SSL. Vysvětlíme je jeden po druhém níže.

Upravte vázanou IP a port

Výchozí IP a port, který Apache poslouchá, je 0.0.0.0:80. Pokud potřebujeme upravit sledovanou IP a port, můžeme ji upravit přímo. Pokud potřebujeme vázat více portů, můžeme je také přidat. V následujícím příkladu svážeme porty 80 a 443. Port 443 je výchozí číslo portu pro HTTPS.

            Listen 80
Listen 443 https
        

Otevřený přenos gzip

Protože výkon procesoru našeho počítače je relativně vysoký, obvykle se objeví úzké místo v šířce pásma sítě, takže můžeme zvolit zapnutí kompresního přenosu gzip. Existuje 9 úrovní komprese. Můžeme si vybrat podle výkonu našeho serveru a najít nejvhodnější úroveň. V níže uvedeném příkladu jsme nastavili úroveň 1. Typy komprimovaných souborů jsou: html, xml, php, css, js, podle potřeby můžeme také přidat typy komprimovaných souborů.

            <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>
        

Nastavte KeepAlive

Funkce KeepAlive je udržovat klienta a server po určitou dobu připojeni. Když otevíráme webovou stránku, obvykle musíme načíst hlavní obsah, js, css a obrázky. Jelikož každý zdroj musí iniciovat samostatný požadavek HTTP, povolíme KeepAlive, aby se zkrátil čas potřebný pro každý požadavek na vytvoření odkazu TCP / IP. Ale KeepAlive má také nevýhody, způsobí to obsazení zdrojů IO serveru, takže musíme zvolit, zda KeepAlive povolit podle skutečné situace. Pokud je KeepAlive povolen, musíme také nastavit přiměřený časový limit, aby se zabránilo dlouhodobému obsazování IO serveru. Následující příklad obsahuje několik hlavních nastavení KeepAlive.

            KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
        

Nakonfigurujte počet souběžných

Přiměřená konfigurace počtu souběžných může výrazně zlepšit propustnost serveru. Náš Apache obvykle pracuje v mpm_prefork režimu. Musíme rozumně nakonfigurovat několik klíčových parametrů. Musíme věnovat pozornost tomu, že maximální počet připojení by neměl být příliš malý, příliš malý způsobí odmítnutí velkého počtu požadavků uživatelů, když je vysoká souběžnost. Rozumná hodnota, kterou jsme nastavili, by se měla vztahovat na CPU a paměť serveru. Dokud jsou zdroje dostatečné, měli bychom ji nastavit co největší, ale pokud ji nastavíme příliš velkou, prostředky serveru se vyčerpají a Apache se také zhroutí.

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

Nakonfigurujte SSL

Většina webů má nyní povolen SSL pro podporu zabezpečeného připojení HTTPS. Výhodou protokolu HTTPS je, že obsah během přenosu je šifrován, takže se nemusíte obávat úniku informací kvůli zachycení ostatními. Před povolením SSL musíme nejprve požádat o certifikát. Po získání certifikátu dokončete nastavení SSL podle následující konfigurace.

            <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>