Pasang Apache di CentOS7

Rujukan rasmi

Laman web rasmi Dokumentasi Produk HTTPS Gzip

Lakukan pemasangan

            yum -y install libmcrypt libmcrypt-devel mcrypt mhash
yum -y install httpd
        

Ubah suai fail konfigurasi

Setelah pemasangan selesai, kita perlu membuat beberapa pengubahsuaian pada fail konfigurasi. Kandungan pengubahsuaian khusus biasanya meliputi: IP terikat dan port, transmisi mampatan gzip, bilangan sambungan serentak, dan SSL. Mari kita jelaskan satu persatu di bawah.

Ubah suai IP dan port terikat

IP dan port lalai yang didengarkan oleh Apache ialah 0.0.0.0:80. Sekiranya kita perlu mengubah IP dan port yang dipantau, kita dapat mengubahnya secara langsung. Sekiranya kita perlu mengikat beberapa port, kita juga boleh menambahkannya. Dalam contoh berikut, kita mengikat port 80 dan 443. Port 443 adalah nombor port lalai untuk HTTPS.

            Listen 80
Listen 443 https
        

Buka penghantaran gzip

Kerana prestasi CPU komputer kita agak tinggi, biasanya kemacetan akan muncul dalam lebar jalur rangkaian, jadi kita dapat memilih untuk mengaktifkan transmisi mampatan gzip. Terdapat 9 tahap pemampatan. Kami boleh memilih mengikut prestasi pelayan kami dan mencari tahap yang paling sesuai. Dalam contoh di bawah, kami menetapkannya ke tahap 1. Jenis fail yang dimampatkan adalah: html, xml, php, css, js, kita juga dapat menambahkan jenis fail yang dimampatkan jika diperlukan.

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

Sediakan KeepAlive

Fungsi KeepAlive adalah memastikan klien dan pelayan tetap terhubung untuk jangka masa tertentu. Semasa kita membuka laman web, kita biasanya perlu memuatkan isi utama, js, css, dan gambar. Oleh kerana setiap sumber perlu memulakan permintaan HTTP yang terpisah, kami memungkinkan KeepAlive untuk mengurangkan waktu yang diperlukan untuk setiap permintaan untuk membuat pautan TCP / IP. Tetapi KeepAlive juga mempunyai kekurangan. Ini akan menyebabkan sumber IO pelayan dihuni, jadi kami perlu memilih sama ada untuk mengaktifkan KeepAlive mengikut keadaan sebenar. Sekiranya KeepAlive diaktifkan, kita juga perlu menetapkan batas waktu yang munasabah untuk mengelakkan pelayan IO dihuni lama. Contoh berikut mengandungi beberapa tetapan utama KeepAlive.

            KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
        

Konfigurasikan bilangan serentak

Konfigurasi bilangan serentak yang munasabah dapat meningkatkan throughput pelayan. Biasanya Apache kami berfungsi dalam mod mpm_prefork. Kita perlu mengkonfigurasi beberapa parameter utama secara wajar. Yang perlu kita perhatikan adalah bahawa jumlah sambungan maksimum tidak boleh terlalu kecil, terlalu kecil akan menyebabkan sebilangan besar permintaan pengguna ditolak ketika konkurensi tinggi. Nilai wajar yang kita tetapkan harus merujuk pada CPU dan memori pelayan. Selagi sumbernya mencukupi, kita harus menetapkannya seluas mungkin, tetapi jika kita menetapkannya terlalu besar, sumber pelayan akan habis dan Apache juga akan rosak.

            <IfModule mpm_prefork_module>
    StartServers         10
    MinSpareServers      25
    MaxSpareServers      50
    ServerLimit          1500
    MaxClients           1000
    MaxRequestsPerChild  3000
</IfModule>
        

Konfigurasikan SSL

Sebilangan besar laman web kini mempunyai SSL untuk menyokong sambungan selamat HTTPS. Kelebihan HTTPS adalah bahawa kandungan semasa penghantaran dienkripsi, jadi tidak perlu bimbang tentang kebocoran maklumat kerana pemintasan oleh orang lain. Sebelum mengaktifkan SSL, kita mesti memohon sijil terlebih dahulu. Setelah mendapatkan sijil, rujuk konfigurasi berikut untuk menyelesaikan tetapan 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>