Instalați Apache pe CentOS7

Referință oficială

Site oficial Documentația produsului HTTPS Gzip

Efectuați instalarea

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

Modificați fișierul de configurare

După finalizarea instalării, trebuie să facem unele modificări la fișierul de configurare. Conținutul modificării specifice include de obicei: IP și port legat, transmisie de compresie gzip, numărul de conexiuni simultane și SSL. Să le explicăm unul câte unul mai jos.

Modificați IP-ul legat și portul

IP-ul și portul implicit pe care le ascultă Apache sunt 0.0.0.0:80. Dacă trebuie să modificăm IP-ul și portul monitorizate, îl putem modifica direct. Dacă trebuie să legăm mai multe porturi, le putem adăuga. În exemplul următor, legăm porturile 80 și 443. Portul 443 este numărul de port implicit pentru HTTPS.

            Listen 80
Listen 443 https
        

Deschideți transmisia gzip

Deoarece performanța procesorului computerului nostru este relativ ridicată, de obicei blocajul va apărea în lățimea de bandă a rețelei, astfel încât să putem alege să activăm transmisia de compresie gzip. Există 9 niveluri de compresie. Putem alege în funcție de performanța serverului nostru și să găsim cel mai potrivit nivel. În exemplul de mai jos, l-am setat la nivelul 1. Tipurile de fișiere comprimate sunt: ​​html, xml, php, css, js, putem adăuga și tipuri de fișiere comprimate, după cum este necesar.

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

Configurați KeepAlive

Funcția KeepAlive este de a păstra clientul și serverul conectat pentru o perioadă de timp. Când deschidem o pagină web, de obicei trebuie să încărcăm conținutul principal, js, css și imagini. Deoarece fiecare resursă trebuie să inițieze o cerere HTTP separată, activăm KeepAlive pentru a reduce timpul necesar pentru fiecare cerere pentru a stabili o legătură TCP / IP. Dar KeepAlive are și dezavantaje. Aceasta va face ca resursele IO ale serverului să fie ocupate, deci trebuie să alegem dacă să activăm KeepAlive în funcție de situația reală. Dacă KeepAlive este activat, trebuie să setăm un timeout rezonabil pentru a evita ca IO-ul serverului să fie ocupat mult timp. Următorul exemplu conține mai multe setări principale ale KeepAlive.

            KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
        

Configurați numărul de simultane

O configurație rezonabilă a numărului de simultane poate îmbunătăți considerabil capacitatea de transfer a serverului. De obicei, Apache-ul nostru funcționează în modul mpm_prefork. Trebuie să configurăm în mod rezonabil mai mulți parametri cheie. Trebuie să fim atenți la faptul că numărul maxim de conexiuni nu trebuie să fie prea mic, prea mic va face ca un număr mare de solicitări ale utilizatorilor să fie respins atunci când concurența este mare. Valoarea rezonabilă pe care o setăm ar trebui să se refere la CPU și memorie ale serverului. Atâta timp cât resursele sunt suficiente, ar trebui să o setăm cât mai mare posibil, dar dacă o setăm prea mare, resursele serverului vor fi epuizate, iar Apache se va prăbuși.

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

Configurați SSL

Majoritatea site-urilor web au acum SSL activat pentru a accepta conexiuni securizate HTTPS. Avantajul HTTPS este că conținutul în timpul transmisiei este criptat, deci nu este nevoie să vă faceți griji cu privire la scurgerea informațiilor din cauza interceptării de către alții. Înainte de a activa SSL, trebuie mai întâi să solicităm un certificat. După ce obținem certificatul, consultați următoarea configurație pentru a finaliza setările 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>