Installeer Apache op CentOS7
Officiële referentie
Officiële website Productdocumentatie HTTPS GzipVoer de installatie uit
yum -y install libmcrypt libmcrypt-devel mcrypt mhash
yum -y install httpd
Wijzig het configuratiebestand
Nadat de installatie is voltooid, moeten we enkele wijzigingen aanbrengen in het configuratiebestand. De specifieke inhoud van de wijziging omvat gewoonlijk: gebonden IP en poort, gzip-compressieoverdracht, aantal gelijktijdige verbindingen en SSL. Laten we ze hieronder een voor een uitleggen.
Wijzig het gebonden IP-adres en de poort
Het standaard IP-adres en de poort waarnaar Apache luistert, is 0.0.0.0:80. Als we het bewaakte IP-adres en de poort moeten wijzigen, kunnen we dit rechtstreeks wijzigen. Als we meerdere poorten moeten binden, kunnen we deze ook toevoegen. In het volgende voorbeeld binden we poorten 80 en 443. Poort 443 is het standaardpoortnummer voor HTTPS.
Listen 80
Listen 443 https
Open gzip-verzending
Omdat de CPU-prestaties van onze computer relatief hoog zijn, zal de bottleneck meestal optreden in de netwerkbandbreedte, dus we kunnen ervoor kiezen om gzip-compressieoverdracht in te schakelen. Er zijn 9 compressieniveaus. We kunnen kiezen op basis van de prestaties van onze server en het meest geschikte niveau vinden. In het onderstaande voorbeeld stellen we het in op niveau 1. De gecomprimeerde bestandstypen zijn: html, xml, php, css, js, we kunnen indien nodig ook gecomprimeerde bestandstypen toevoegen.
<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>
KeepAlive instellen
De functie van KeepAlive is om de client en server voor een bepaalde tijd verbonden te houden. Wanneer we een webpagina openen, moeten we meestal de hoofdinhoud, js, css en afbeeldingen laden. Aangezien elke bron een afzonderlijk HTTP-verzoek moet starten, schakelen we KeepAlive in om de tijd die nodig is voor elk verzoek om een TCP / IP-link tot stand te brengen, te verminderen. Maar KeepAlive heeft ook nadelen, het zal ervoor zorgen dat de IO-bronnen van de server bezet raken, dus we moeten kiezen of KeepAlive moet worden ingeschakeld op basis van de feitelijke situatie. Als KeepAlive is ingeschakeld, moeten we er ook een redelijke time-out voor instellen om te voorkomen dat de server-IO lange tijd bezet is. Het volgende voorbeeld bevat verschillende hoofdinstellingen van KeepAlive.
KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
Configureer het aantal gelijktijdige
Een redelijke configuratie van het aantal gelijktijdige spelers kan de doorvoer van de server aanzienlijk verbeteren. Gewoonlijk werkt onze Apache in de modus mpm_prefork. We moeten redelijkerwijs verschillende belangrijke parameters configureren. Waar we op moeten letten, is dat het maximale aantal verbindingen niet te klein mag zijn, te klein zal ertoe leiden dat een groot aantal gebruikersverzoeken wordt afgewezen wanneer de gelijktijdigheid hoog is. De redelijke waarde die we instellen, moet verwijzen naar de CPU en het geheugen van de server. Zolang de bronnen voldoende zijn, moeten we deze zo groot mogelijk instellen, maar als we een te grote waarde instellen, zullen de serverbronnen uitgeput raken en zal Apache ook crashen.
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 25
MaxSpareServers 50
ServerLimit 1500
MaxClients 1000
MaxRequestsPerChild 3000
</IfModule>
Configureer SSL
De meeste websites hebben nu SSL ingeschakeld om HTTPS-beveiligde verbindingen te ondersteunen. Het voordeel van HTTPS is dat de inhoud tijdens verzending versleuteld is, zodat u zich geen zorgen hoeft te maken over informatielekken door onderschepping door anderen. Voordat we SSL inschakelen, moeten we eerst een certificaat aanvragen. Nadat we het certificaat hebben ontvangen, verwijzen we naar de volgende configuratie om de SSL-instellingen te voltooien.
<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>