Усталюйце Apache на CentOS7
Афіцыйная даведка
Афіцыйны сайт Дакументацыя на прадукт HTTPS GzipВыканайце ўстаноўку
yum -y install libmcrypt libmcrypt-devel mcrypt mhash
yum -y install httpd
Зменіце файл канфігурацыі
Пасля завяршэння ўстаноўкі нам трэба ўнесці некаторыя змены ў файл канфігурацыі. Канкрэтны змест мадыфікацыі звычайна ўключае: звязаны IP і порт, перадачу сціску gzip, колькасць адначасовых злучэнняў і SSL. Давайце растлумачым іх па адным ніжэй.
Зменіце звязаны IP і порт
Па змаўчанні IP і порт, якія праслухоўвае Apache, складаюць 0.0.0.0:80. Калі нам трэба змяніць кантраляваны IP і порт, мы можам змяніць яго непасрэдна. Калі нам трэба звязаць некалькі партоў, мы таксама можам дадаць іх. У наступным прыкладзе мы звязваем парты 80 і 443. Порт 443 - гэта нумар порта па змаўчанні для HTTPS.
Listen 80
Listen 443 https
Адкрытая перадача gzip
Паколькі прадукцыйнасць працэсара нашага кампутара адносна высокая, звычайна вузкае месца з'яўляецца ў прапускной здольнасці сеткі, таму мы можам уключыць перадачу сціску gzip. Ёсць 9 узроўняў сціску. Мы можам выбраць у залежнасці ад прадукцыйнасці нашага сервера і знайсці найбольш прыдатны ўзровень. У прыведзеным ніжэй прыкладзе мы ўстанавім яго на ўзровень 1. Тыпы сціснутых файлаў: html, xml, php, css, js, мы таксама можам дадаваць тыпы сціснутых файлаў па меры неабходнасці.
<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
Функцыя KeepAlive - падтрымліваць сувязь кліента і сервера на працягу пэўнага перыяду часу. Калі мы адкрываем вэб-старонку, звычайна нам неабходна загрузіць асноўны змест, js, css і выявы. Паколькі кожны рэсурс павінен ініцыяваць асобны HTTP-запыт, мы ўключаем KeepAlive, каб скараціць час, неабходны для кожнага запыту, каб усталяваць спасылку TCP / IP. Але KeepAlive мае і недахопы, гэта прывядзе да занятасці рэсурсаў уводу-вываду сервера, таму нам трэба выбраць, ці ўключаць KeepAlive у адпаведнасці з рэальнай сітуацыяй. Калі KeepAlive уключаны, нам таксама трэба ўсталяваць разумны перыяд чакання, каб пазбегнуць доўгай занятасці сервернага ўводу. Наступны прыклад змяшчае некалькі асноўных налад KeepAlive.
KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
Наладзьце колькасць адначасовых
Разумная канфігурацыя колькасці адначасовых паралеляў можа значна палепшыць прапускную здольнасць сервера. Звычайна наш Apache працуе ў рэжыме mpm_prefork. Нам трэба разумна наладзіць некалькі ключавых параметраў. На што нам трэба звярнуць увагу, гэта тое, што максімальная колькасць злучэнняў не павінна быць занадта маленькай, занадта маленькай прывядзе да адхілення вялікай колькасці запытаў карыстальнікаў пры высокай адначасовасці. Разумнае значэнне, якое мы ўсталёўваем, павінна адносіцца да працэсара і памяці сервера. Пакуль рэсурсаў дастаткова, мы павінны ўсталяваць яго як мага большы, але калі мы ўсталюем яго занадта вялікім, рэсурсы сервера будуць вычарпаны, і Apache таксама выйдзе з ладу.
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 25
MaxSpareServers 50
ServerLimit 1500
MaxClients 1000
MaxRequestsPerChild 3000
</IfModule>
Наладзьце SSL
У большасці вэб-сайтаў цяпер уключаны SSL для падтрымкі бяспечных злучэнняў HTTPS. Перавага HTTPS у тым, што змест падчас перадачы шыфруецца, таму не трэба турбавацца пра ўцечку інфармацыі з-за перахопу іншымі. Перш чым уключыць SSL, мы павінны спачатку падаць заяўку на сертыфікат. Пасля атрымання сертыфіката звярніцеся да наступнай канфігурацыі, каб завяршыць налады 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>