Instal·leu Apache a CentOS7

Referència oficial

Pàgina web oficial Documentació del producte HTTPS Gzip

Realitzeu la instal·lació

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

Modifiqueu el fitxer de configuració

Un cop finalitzada la instal·lació, hem de fer algunes modificacions al fitxer de configuració. El contingut de la modificació específica sol incloure: IP i port enllaçats, transmissió de compressió gzip, nombre de connexions simultànies i SSL. Expliquem-los un per un a continuació.

Modifiqueu la IP i el port enllaçats

La IP i el port per defecte que escolta Apache és 0.0.0.0:80. Si necessitem modificar la IP i el port supervisats, podem modificar-los directament. Si necessitem enllaçar diversos ports, també els podem afegir. A l'exemple següent, enllaçem els ports 80 i 443. El port 443 és el número de port predeterminat per a HTTPS.

            Listen 80
Listen 443 https
        

Transmissió gzip oberta

Com que el rendiment de la CPU del nostre ordinador és relativament alt, normalment el coll d'ampolla apareixerà a l'amplada de banda de la xarxa, de manera que podem optar per activar la transmissió de compressió gzip. Hi ha 9 nivells de compressió. Podem triar segons el rendiment del nostre servidor i trobar el nivell més adequat. A l'exemple següent, el configurem al nivell 1. Els tipus de fitxers comprimits són: html, xml, php, css, js, també podem afegir tipus de fitxers comprimits segons sigui necessari.

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

Configureu KeepAlive

La funció de KeepAlive és mantenir el client i el servidor connectats durant un període de temps. Quan obrim una pàgina web, normalment necessitem carregar el contingut principal, js, css i imatges. Com que cada recurs ha d'iniciar una sol·licitud HTTP independent, habilitem KeepAlive per reduir el temps necessari per a cada sol·licitud per establir un enllaç TCP / IP. Però KeepAlive també té inconvenients: farà que s’ocupin els recursos IO del servidor, de manera que hem de triar si cal activar KeepAlive segons la situació real. Si KeepAlive està habilitat, també hem d’establir un temps d’espera raonable per evitar que la IO del servidor estigui ocupada durant molt de temps. L'exemple següent conté diversos paràmetres principals de KeepAlive.

            KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
        

Configureu el nombre de simultanis

Una configuració raonable del nombre de simultanis pot millorar considerablement el rendiment del servidor. Normalment, el nostre Apache funciona en mode mpm_prefork. Hem de configurar raonablement diversos paràmetres clau. El que hem de prestar atenció és que el nombre màxim de connexions no ha de ser massa petit, massa petit farà que es rebutgi un gran nombre de sol·licituds d'usuaris quan la concurrència sigui alta. El valor raonable que establim hauria de referir-se a la CPU i a la memòria del servidor. Sempre que els recursos siguin suficients, hauríem d’establir-lo el més gran possible, però si el configurem massa gran, els recursos del servidor s’esgotaran i Apache també es bloquejarà.

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

Configureu SSL

Ara la majoria de llocs web tenen SSL habilitat per admetre connexions segures HTTPS. L’avantatge d’HTTPS és que el contingut durant la transmissió està xifrat, de manera que no cal preocupar-se per la filtració d’informació a causa de la interceptació d’altres. Abans d'activar SSL, primer hem de sol·licitar un certificat. Després d'obtenir-lo, consulteu la configuració següent per completar la configuració 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>