តំឡើងកម្មវិធី Apache នៅលើ CentOS7

ឯកសារយោងផ្លូវការ

គេហទំព័រ​ផ្លូវការ ឯកសារផលិតផល HTTPS Gzip

អនុវត្តការដំឡើង

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

កែប្រែឯកសារកំណត់រចនាសម្ព័ន្ធ

បន្ទាប់ពីការដំឡើងចប់រួចរាល់យើងត្រូវធ្វើការកែប្រែខ្លះចំពោះឯកសារកំណត់រចនាសម្ព័ន្ធ។ ខ្លឹមសារនៃការកែប្រែជាក់លាក់មានជាអាទិ៍ៈការភ្ជាប់ IP និងកំពង់ផែការបញ្ជូនបង្ហាប់ gzip ចំនួននៃការភ្ជាប់ដំណាលគ្នានិង SSL ។ ចូរពន្យល់ពួកគេម្តងមួយៗ។

កែប្រែ IP និង port ដែលជាប់

IP និងកំពង់ផែលំនាំដើមដែល Apache ស្តាប់គឺ 0.0.0.0:80 ។ ប្រសិនបើយើងត្រូវការកែប្រែ IP និងកំពង់ផែដែលបានត្រួតពិនិត្យយើងអាចកែប្រែវាដោយផ្ទាល់។ ប្រសិនបើយើងត្រូវការភ្ជាប់កំពង់ផែច្រើនយើងក៏អាចបន្ថែមវាបានដែរ។ ក្នុងឧទាហរណ៍ខាងក្រោមយើងភ្ជាប់កំពង់ផែ ៨០ និង ៤៤៣ ។ ច្រក ៤៤៣ គឺជាលេខច្រកលំនាំដើមសម្រាប់ HTTPS ។

            Listen 80
Listen 443 https
        

ការបញ្ជូន gzip បើក

ដោយសារតែដំណើរការស៊ីភីយូរបស់កុំព្យូទ័រយើងមានកំរិតខ្ពស់គួរអោយកត់សំគាល់ជាធម្មតាការរាំងស្ទះនឹងលេចចេញក្នុងបណ្តាញប្រេកង់ដូច្នេះយើងអាចជ្រើសរើសបើកការបញ្ជូនការបង្ហាប់ gzip ។ ការបង្ហាប់មាន ៩ កម្រិតយើងអាចជ្រើសរើសយោងទៅតាមដំណើរការរបស់ម៉ាស៊ីនមេរបស់យើងនិងរកឃើញនូវកំរិតដែលសមស្របបំផុត។ ក្នុងឧទាហរណ៍ខាងក្រោមយើងកំណត់វាដល់កម្រិត ១ ។ ប្រភេទឯកសារដែលបានបង្ហាប់គឺៈ 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>