Installa Apache su CentOS7

Riferimento ufficiale

Sito ufficiale Documentazione del prodotto HTTPS Gzip

Eseguire l'installazione

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

Modifica il file di configurazione

Al termine dell'installazione, è necessario apportare alcune modifiche al file di configurazione. Il contenuto della modifica specifica di solito include: IP e porta associati, trasmissione con compressione gzip, numero di connessioni simultanee e SSL. Spiegiamoli uno per uno di seguito.

Modificare l'IP e la porta associati

L'IP e la porta predefiniti su cui Apache ascolta è 0.0.0.0:80. Se dobbiamo modificare l'IP e la porta monitorati, possiamo modificarli direttamente. Se dobbiamo associare più porte, possiamo anche aggiungerle. Nell'esempio seguente, colleghiamo le porte 80 e 443. La porta 443 è il numero di porta predefinito per HTTPS.

            Listen 80
Listen 443 https
        

Apri trasmissione gzip

Poiché le prestazioni della CPU del nostro computer sono relativamente elevate, di solito il collo di bottiglia apparirà nella larghezza di banda della rete, quindi possiamo scegliere di attivare la trasmissione con compressione gzip. Ci sono 9 livelli di compressione, possiamo scegliere in base alle prestazioni del nostro server e trovare il livello più adatto. Nell'esempio seguente, lo abbiamo impostato al livello 1. I tipi di file compressi sono: html, xml, php, css, js, possiamo anche aggiungere tipi di file compressi secondo necessità.

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

La funzione di KeepAlive è mantenere il client e il server connessi per un periodo di tempo. Quando apriamo una pagina web, di solito abbiamo bisogno di caricare il contenuto principale, js, css e immagini. Poiché ogni risorsa deve avviare una richiesta HTTP separata, abilitiamo KeepAlive per ridurre il tempo necessario a ciascuna richiesta per stabilire un collegamento TCP / IP. Ma KeepAlive ha anche degli svantaggi: causerà l'occupazione delle risorse IO del server, quindi dobbiamo scegliere se abilitare KeepAlive in base alla situazione attuale. Se KeepAlive è abilitato, dobbiamo anche impostare un timeout ragionevole per evitare che l'IO del server venga occupato per un lungo periodo. Il seguente esempio contiene diverse impostazioni principali di KeepAlive.

            KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
        

Configura il numero di simultanei

Una configurazione ragionevole del numero di simultanei può migliorare notevolmente la velocità effettiva del server. Di solito il nostro Apache funziona in modalità mpm_prefork. Abbiamo bisogno di configurare ragionevolmente diversi parametri chiave. Ciò a cui dobbiamo prestare attenzione è che il numero massimo di connessioni non dovrebbe essere troppo piccolo, troppo piccolo causerà il rifiuto di un numero elevato di richieste utente quando la concorrenza è alta. Il valore ragionevole che impostiamo dovrebbe fare riferimento alla CPU e alla memoria del server. Finché le risorse sono sufficienti, dovremmo impostarlo il più grande possibile, ma se lo impostiamo troppo grande, le risorse del server saranno esaurite e anche Apache andrà in crash.

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

Configura SSL

La maggior parte dei siti Web ora dispone di SSL abilitato per supportare le connessioni protette HTTPS. Il vantaggio di HTTPS è che il contenuto durante la trasmissione è crittografato, quindi non è necessario preoccuparsi della perdita di informazioni dovuta all'intercettazione da parte di altri. Prima di abilitare SSL, dobbiamo prima richiedere un certificato Dopo aver ottenuto il certificato, fare riferimento alla seguente configurazione per completare le impostazioni 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>