Zainstaluj Apache na CentOS7

Oficjalne odniesienie

Oficjalna strona internetowa Dokumentacja produktu HTTPS Gzip

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