CentOS7 पर अपाचे स्थापित करें

आधिकारिक संदर्भ

सरकारी वेबसाइट उत्पाद प्रलेखन HTTPS Gzip

स्थापना करें

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

कॉन्फ़िगरेशन फ़ाइल को संशोधित करें

स्थापना पूर्ण होने के बाद, हमें कॉन्फ़िगरेशन फ़ाइल में कुछ संशोधन करने की आवश्यकता है। विशिष्ट संशोधन सामग्री में आम तौर पर शामिल हैं: बाध्य आईपी और पोर्ट, गज़िप संपीड़न संचरण, समवर्ती कनेक्शन की संख्या, और एसएसएल। नीचे हम एक-एक करके समझाते हैं।

बाध्य IP और पोर्ट को संशोधित करें

डिफ़ॉल्ट IP और पोर्ट जिसे Apache सुनता है 0.0.0.0:80 है। यदि हमें मॉनिटर किए गए आईपी और पोर्ट को संशोधित करने की आवश्यकता है, तो हम इसे सीधे संशोधित कर सकते हैं। यदि हमें कई बंदरगाहों को बांधने की आवश्यकता है, तो हम उन्हें भी जोड़ सकते हैं। निम्नलिखित उदाहरण में, हम बंदरगाहों को 80 और 443 से बांधते हैं। पोर्ट 443 HTTPS के लिए डिफ़ॉल्ट पोर्ट नंबर है।

            Listen 80
Listen 443 https
        

ओपन गज़िप ट्रांसमिशन

क्योंकि हमारे कंप्यूटर का सीपीयू प्रदर्शन अपेक्षाकृत अधिक है, आमतौर पर नेटवर्क बैंडविड्थ में अड़चन दिखाई देगी, इसलिए हम गज़िप संपीड़न ट्रांसमिशन को चालू करना चुन सकते हैं। संपीड़न के 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 को सक्षम करते हैं। लेकिन KeepAlive में कमियां भी हैं। इससे सर्वर के IO संसाधनों पर कब्जा हो जाएगा, इसलिए हमें यह चुनने की आवश्यकता है कि क्या KeepAlive को वास्तविक स्थिति के अनुसार सक्षम किया जाए। यदि KeepAlive सक्षम है, तो हमें लंबे समय तक सर्वर IO के कब्जे से बचने के लिए इसके लिए एक उचित समय निर्धारित करने की भी आवश्यकता है। निम्न उदाहरण में KeepAlive की कई मुख्य सेटिंग्स हैं।

            KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
        

समवर्ती की संख्या कॉन्फ़िगर करें

समवर्ती की संख्या का एक उचित कॉन्फ़िगरेशन सर्वर के थ्रूपुट में काफी सुधार कर सकता है। आमतौर पर हमारी Apache mpm_prefork मोड में काम करती है। हमें कई प्रमुख मापदंडों को यथोचित रूप से कॉन्फ़िगर करने की आवश्यकता है। हमें इस पर ध्यान देने की आवश्यकता है कि कनेक्शन की अधिकतम संख्या बहुत कम नहीं होनी चाहिए, बहुत छोटी होने पर बड़ी संख्या में उपयोगकर्ता अनुरोधों को अस्वीकार कर दिया जाएगा जब संक्षिप्तता अधिक होगी। हमारे द्वारा निर्धारित उचित मूल्य सर्वर के सीपीयू और मेमोरी को संदर्भित करना चाहिए। जब ​​तक संसाधन पर्याप्त हैं, हमें इसे यथासंभव बड़ा सेट करना चाहिए, लेकिन यदि हम इसे बहुत बड़ा सेट करते हैं, तो सर्वर संसाधन समाप्त हो जाएगा और अपाचे भी दुर्घटनाग्रस्त हो जाएगा।

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

SSL कॉन्फ़िगर करें

अधिकांश वेबसाइटों में अब HTTPS सुरक्षित कनेक्शन का समर्थन करने के लिए SSL सक्षम है। HTTPS का लाभ यह है कि ट्रांसमिशन के दौरान सामग्री एन्क्रिप्ट की जाती है, इसलिए दूसरों के बीच अवरोधन के कारण सूचना रिसाव के बारे में चिंता करने की कोई आवश्यकता नहीं है। एसएसएल को सक्षम करने से पहले, हमें पहले एक प्रमाण पत्र के लिए आवेदन करना होगा। प्रमाणपत्र प्राप्त करने के बाद, एसएसएल सेटिंग्स को पूरा करने के लिए निम्न कॉन्फ़िगरेशन का संदर्भ लें।

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