Zainstaluj Apache na CentOS7
Oficjalne odniesienie
Oficjalna strona internetowa Dokumentacja produktu HTTPS GzipWykonaj instalację
yum -y install libmcrypt libmcrypt-devel mcrypt mhash
yum -y install httpd
Zmodyfikuj plik konfiguracyjny
Po zakończeniu instalacji musimy wprowadzić pewne modyfikacje w pliku konfiguracyjnym. Konkretna treść modyfikacji zwykle obejmuje: powiązany adres IP i port, transmisję kompresji gzip, liczbę równoczesnych połączeń i SSL. Wyjaśnijmy je jeden po drugim poniżej.
Zmodyfikuj powiązany adres IP i port
Domyślny adres IP i port nasłuchiwany przez Apache to 0.0.0.0:80. Jeśli musimy zmodyfikować monitorowany adres IP i port, możemy to zmienić bezpośrednio. Jeśli musimy powiązać wiele portów, możemy je również dodać. W poniższym przykładzie łączymy porty 80 i 443. Port 443 to domyślny numer portu dla protokołu HTTPS.
Listen 80
Listen 443 https
Otwórz transmisję gzip
Ponieważ wydajność procesora naszego komputera jest stosunkowo wysoka, zwykle wąskie gardło pojawia się w przepustowości sieci, więc możemy włączyć transmisję kompresji gzip. Dostępnych jest 9 poziomów kompresji, możemy wybrać w zależności od wydajności naszego serwera i znaleźć najbardziej odpowiedni poziom. W poniższym przykładzie ustawiliśmy poziom 1. Skompresowane typy plików to: html, xml, php, css, js, w razie potrzeby możemy również dodać skompresowane typy plików.
<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>
Skonfiguruj KeepAlive
Funkcją KeepAlive jest utrzymywanie połączenia między klientem a serwerem przez pewien czas. Kiedy otwieramy stronę internetową, zwykle musimy załadować główną zawartość, js, css i obrazy. Ponieważ każdy zasób musi zainicjować oddzielne żądanie HTTP, umożliwiamy KeepAlive skrócenie czasu wymaganego dla każdego żądania do ustanowienia łącza TCP / IP. Ale KeepAlive ma również wady: spowoduje to, że zasoby IO serwera będą zajęte, więc musimy zdecydować, czy włączyć KeepAlive w zależności od aktualnej sytuacji. Jeśli KeepAlive jest włączone, musimy również ustawić rozsądny limit czasu, aby uniknąć zajętości we / wy serwera przez długi czas. Poniższy przykład zawiera kilka głównych ustawień KeepAlive.
KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
Skonfiguruj liczbę jednoczesnych
Rozsądna konfiguracja liczby jednoczesnych może znacznie poprawić przepustowość serwera. Zwykle nasz Apache działa w trybie mpm_prefork. Musimy rozsądnie skonfigurować kilka kluczowych parametrów. Musimy zwrócić uwagę na to, aby maksymalna liczba połączeń nie była za mała, zbyt mała spowoduje odrzucenie dużej liczby żądań użytkowników, gdy współbieżność jest wysoka. Rozsądna wartość, którą ustawiamy, powinna odnosić się do procesora i pamięci serwera. O ile zasoby są wystarczające, powinniśmy ustawić je na jak największe, ale jeśli ustawimy za duże, zasoby serwera zostaną wyczerpane, a Apache również ulegnie awarii.
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 25
MaxSpareServers 50
ServerLimit 1500
MaxClients 1000
MaxRequestsPerChild 3000
</IfModule>
Skonfiguruj SSL
Większość witryn internetowych ma teraz włączony protokół SSL do obsługi bezpiecznych połączeń HTTPS. Zaletą protokołu HTTPS jest to, że treść podczas transmisji jest szyfrowana, więc nie ma potrzeby martwić się o wyciek informacji z powodu przechwycenia przez innych. Przed włączeniem SSL musimy najpierw złożyć wniosek o certyfikat. Po otrzymaniu certyfikatu należy zapoznać się z poniższą konfiguracją, aby zakończyć ustawienia 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>