Gosod Apache ar CentOS7

Cyfeirnod swyddogol

Gwefan swyddogol Dogfennaeth Cynnyrch HTTPS Gzip

Perfformio gosodiad

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

Addaswch y ffeil ffurfweddu

Ar ôl i'r gosodiad gael ei gwblhau, mae angen i ni wneud rhai addasiadau i'r ffeil ffurfweddu. Mae'r cynnwys addasu penodol fel arfer yn cynnwys: IP a phorthladd wedi'i rwymo, trosglwyddiad cywasgu gzip, nifer y cysylltiadau cydamserol, ac SSL. Gadewch i ni eu hesbonio fesul un isod.

Addaswch yr IP wedi'i rwymo a'r porthladd

Yr IP a'r porthladd diofyn y mae Apache yn gwrando arno yw 0.0.0.0:80. Os oes angen i ni addasu'r IP a'r porthladd sy'n cael ei fonitro, gallwn ei addasu'n uniongyrchol. Os oes angen i ni rwymo porthladdoedd lluosog, gallwn eu hychwanegu hefyd. Yn yr enghraifft ganlynol, rydym yn rhwymo porthladdoedd 80 a 443. Port 443 yw'r rhif porthladd diofyn ar gyfer HTTPS.

            Listen 80
Listen 443 https
        

Trosglwyddo gzip agored

Oherwydd bod perfformiad CPU ein cyfrifiadur yn gymharol uchel, fel arfer bydd y dagfa yn ymddangos yn lled band y rhwydwaith, felly gallwn ddewis troi trosglwyddiad cywasgu gzip ymlaen. Mae 9 lefel o gywasgu. Gallwn ddewis yn ôl perfformiad ein gweinydd a dod o hyd i'r lefel fwyaf addas. Yn yr enghraifft isod, fe wnaethom ei gosod i lefel 1. Y mathau o ffeiliau cywasgedig yw: html, xml, php, css, js, gallwn hefyd ychwanegu mathau o ffeiliau cywasgedig yn ôl yr angen.

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

Sefydlu KeepAlive

Swyddogaeth KeepAlive yw cadw'r cleient a'r gweinydd yn gysylltiedig am gyfnod o amser. Pan fyddwn yn agor tudalen we, fel rheol mae angen i ni lwytho'r prif gynnwys, js, CSS, a lluniau. Gan fod angen i bob adnodd gychwyn cais HTTP ar wahân, rydym yn galluogi KeepAlive i leihau'r amser sy'n ofynnol ar gyfer pob cais i sefydlu cyswllt TCP / IP. Ond mae anfanteision i KeepAlive hefyd. Bydd yn achosi meddiannu adnoddau IO y gweinydd, felly mae angen i ni ddewis a ddylid galluogi KeepAlive yn ôl y sefyllfa wirioneddol. Os yw KeepAlive wedi'i alluogi, mae angen i ni hefyd osod terfyn amser rhesymol iddo er mwyn osgoi meddiannu IO gweinyddwr am amser hir. Mae'r enghraifft ganlynol yn cynnwys sawl prif osodiad o KeepAlive.

            KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
        

Ffurfweddu nifer y cydamserol

Gall cyfluniad rhesymol o nifer y cydamserol wella trwybwn y gweinydd yn fawr. Fel arfer mae ein Apache yn gweithio yn y modd mpm_prefork. Mae angen i ni ffurfweddu sawl paramedr allweddol yn rhesymol. Yr hyn y mae'n rhaid i ni roi sylw iddo yw na ddylai'r nifer uchaf o gysylltiadau fod yn rhy fach, bydd rhy fach yn achosi gwrthod nifer fawr o geisiadau gan ddefnyddwyr pan fydd y cydsyniad yn uchel. Dylai'r gwerth rhesymol a osodwn gyfeirio at CPU a chof y gweinydd. Cyn belled â bod yr adnoddau'n ddigonol, dylem ei osod mor fawr â phosibl, ond os ydym yn ei osod yn rhy fawr, bydd adnoddau'r gweinydd yn cael eu disbyddu a bydd Apache hefyd yn chwalu.

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

Ffurfweddu SSL

Bellach mae gan y mwyafrif o wefannau SSL wedi'u galluogi i gefnogi cysylltiadau diogel HTTPS. Mantais HTTPS yw bod y cynnwys yn ystod y trosglwyddiad yn cael ei amgryptio, felly nid oes angen poeni am ollyngiadau gwybodaeth oherwydd bod eraill yn rhyng-gipio. Cyn galluogi SSL, mae'n rhaid i ni wneud cais am dystysgrif yn gyntaf. Ar ôl i ni gael y dystysgrif, cyfeiriwch at y ffurfweddiad canlynol i gwblhau'r gosodiadau 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>