Встановіть 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 має і недоліки. Це призведе до того, що ресурси IO сервера будуть зайняті, тому нам потрібно вибрати, чи активувати 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>