पायाभूत माहिती प्रॉफिटसर्व्हर सेवेसोबत काम करण्यासाठी सोप्या सूचना
मुख्य पायाभूत माहिती सर्व्हरवरील भार कमी करणे

सर्व्हरवरील भार कमी करणे


या लेखात, आपण सर्व्हर लोड का वाढतो याचा सखोल अभ्यास करू आणि उच्च-लोड प्रक्रिया ऑप्टिमाइझ करण्याच्या विविध मार्गांवर चर्चा करू. Apache/Nginx आणि MySQL मध्ये कोड ऑप्टिमायझेशनवर विशेष लक्ष दिले जाईल, आपण कॅशिंगला एक सहाय्यक साधन म्हणून बोलू आणि DDOS हल्ल्यांसारखे संभाव्य बाह्य धोके आणि ते रोखण्याचे मार्ग देखील विचारात घेऊ.

सर्व्हर लोड का होतो

सर्व्हर ऑप्टिमायझेशनकडे जाण्यापूर्वी, संसाधनांवरील सध्याच्या भाराचे सखोल विश्लेषण करणे आवश्यक आहे. यामध्ये CPU भार, RAM वापर, नेटवर्क क्रियाकलाप आणि इतर प्रमुख पॅरामीटर्स मोजणे समाविष्ट आहे. गतिशीलता आणि पीक लोड समजून घेतल्याने अडथळे ओळखणे आणि संसाधन वाटप ऑप्टिमाइझ करणे शक्य होते, ज्यामुळे सर्व्हर इन्फ्रास्ट्रक्चरची स्थिरता आणि कार्यक्षमता वाढते.

उच्च सर्व्हर लोडच्या सुरुवातीच्या समस्यानिवारणासाठी, आम्ही शिफारस करतो की सामान्य सर्व्हर निदान. जर हे पुरेसे नसेल, तर अधिक तपशीलवार संसाधनांचे विश्लेषण आवश्यक आहे. सहाय्यक साधन म्हणून, एक्सप्लोर करणे लिनक्सचे लॉग सर्व्हर उपयुक्त ठरू शकतो, कारण बहुतेक प्रकरणांमध्ये समस्येचे मूळ येथेच आढळते.

अपाचे/एनजीन्क्स सर्व्हर ऑप्टिमायझ करणे

इंडेक्सिंगमुळे सर्व्हर लोड वाढला

उदाहरणार्थ, जेव्हा सर्च इंजिन तुमच्या साइटवरील मोठ्या संख्येने पेज स्कॅन करतात तेव्हा सर्व्हरवरील इंडेक्सिंगमुळे वाढलेला लोड येऊ शकतो. यामुळे सर्व्हर संसाधनांचा वापर वाढू शकतो आणि परिणामी, साइटची कार्यक्षमता मंदावते. कारण ओळखणे तुलनेने सोपे आहे; तुम्हाला येथे असलेली फाइल उघडावी लागेल:

/var/www/httpd-logs/sitename.access.log

शोध इंजिनद्वारे अनुक्रमित केल्यावर, वापरकर्त्याला खालील स्वरूपाच्या नोंदी दिसतील:

11.22.33.44 - - [Date and Time] "GET /your-page-path HTTP/1.1" 200 1234 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

भार कमी करण्यासाठी पहिला उपाय म्हणून, तुम्ही मेटा टॅगची सेटिंग वापरू शकता "नोइंडेक्स" आणि "अनुसरण करू नका" ज्या पानांना अनुक्रमित करण्याची आवश्यकता नाही अशा पानांवर. दुसरा उपाय म्हणजे .htaccess फाइल, जिथे विशिष्ट शोध इंजिनशी संबंधित नोंदी जोडणे आवश्यक आहे, उदाहरणार्थ, Yandex आणि Google पासून लपविण्यासाठी:

SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
Order Allow,Deny
Allow from all
Deny from env=search_bot

त्याचप्रमाणे, इतर शोध इंजिनांसाठी संपादने करणे आवश्यक आहे. हे लक्षात घेतले पाहिजे की .htaccess ची क्षमता केवळ ब्लॉकिंग इंडेक्सिंगपुरती मर्यादित नाही. आम्ही शिफारस करतो की आपण त्याच्या मुख्य वैशिष्ट्यांशी अधिक परिचित व्हावे. लेख.

कॅशिंग सेटिंग्ज वापरणे

सर्व्हरवरील चुकीच्या कॅशिंग सेटिंग्जमुळे देखील जास्त भार येऊ शकतो. हे पॅरामीटर ऑप्टिमाइझ करण्यासाठी, कॉन्फिगरेशन फाइल्समध्ये संबंधित बदल करणे आवश्यक आहे किंवा .htaccess. अपाचेच्या बाबतीत, नंतरचा पर्याय श्रेयस्कर आहे, Nginx साठी - पहिला.

रोजी अपाचे सर्व्हर, तुम्हाला उघडावे लागेल .htacess फाइल उघडा आणि खालील कोड घाला:

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf|doc|docx)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

त्यानंतर, सक्षम करा कालबाह्य होते कमांड वापरून मॉड्यूल:

sudo a2enmod expires

त्यानंतर, वेब सर्व्हर रीस्टार्ट करा:

sudo service apache2 restart

आणि निर्दिष्ट करून मॉड्यूल सक्रिय करा:

ExpiresActive On

वर Nginx सर्व्हर, कॉन्फिगरेशन फाइलमध्ये खालील कोड जोडणे पुरेसे आहे:

location ~* .(jpg|jpeg|gif|png|ico|css|swf|flv|doc|docx)$ {
root /var/www/yoursite.com;
}

आणि सेवा रीलोड करा:

sudo service nginx restart

लक्षात ठेवा की या सेटिंग्जसह, परवानगी द्या आणि नाकारू निर्देशांचे उल्लंघन केले जाईल.

डेटा कॉम्प्रेशन वापरणे

वापरून डेटा कॉम्प्रेशन सक्षम करणे Gzip Apache आणि Nginx वेब सर्व्हरवर सर्व्हर आणि क्लायंट दरम्यान प्रसारित होणाऱ्या डेटाचे प्रमाण कमी करण्यास मदत होते, ज्यामुळे कार्यप्रदर्शन सुधारते आणि वेब पृष्ठ लोडिंग वेळ कमी होतो.

सक्षम करण्यासाठी Gzip on अपाचे, तुम्हाला सक्रिय करावे लागेल mod_deflate मॉड्यूल:

sudo a2enmod deflate

नंतर, वेब सर्व्हर रीस्टार्ट करा:

sudo service apache2 restart

आणि शेवटी, कॉन्फिगरेशन फाइल किंवा .htaccess मध्ये खालील ब्लॉक जोडा:

<IfModule mod_deflate.c>
# Configure compression for specified file types
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json

# If the browser matches the specified pattern, apply compression only to text/html files
BrowserMatch ^Mozilla/4 gzip-only-text/html

# If the browser matches the specified version patterns of Mozilla 4.0.6, 4.0.7, 4.0.8, disable compression
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# If the browser is MSIE (Internet Explorer), disable compression for all files except text/html
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# If the request contains the specified pattern (extensions of image files), disable compression
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
</IfModule>

हे कॉन्फिगरेशन विशिष्ट प्रकारच्या फाइल्ससाठी कॉम्प्रेशन सक्षम करते आणि प्रतिमांसाठी ते अक्षम करते.

बाबतीत Nginx, कॉन्फिगरेशन मध्ये होते http कॉन्फिगरेशन फाइलचा ब्लॉक. खालील कोड जोडणे आवश्यक आहे:

gzip on;
gzip_disable "msie6";

# Adds the Vary header, indicating that the response may change depending on the Accept-Encoding header value
gzip_vary on;

# Enables compression for any proxy servers
gzip_proxied any;

# Sets the compression level. A value of 6 provides a good balance between compression efficiency and resource use
gzip_comp_level 6;

# Sets the size of the buffer for compressed data (16 buffers of 8 kilobytes each)
gzip_buffers 16 8k;

# Specifies that data compression should be used only for HTTP version 1.1 and higher
gzip_http_version 1.1;

# Sets the file types that can be compressed
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

च्या सारखे अपाचे, येथे विशिष्ट प्रकारच्या फाइल्ससाठी कॉम्प्रेशन पॅरामीटर्स सेट केले आहेत. कोणत्याही वेब सर्व्हरमध्ये बदल केल्यानंतर, सेवा रीलोड करणे आवश्यक आहे:

sudo service apache2 restart

Or

sudo service nginx restart

सर्व्हरवर DDOS हल्ला

DDoS हल्ल्यामुळे सर्व्हरवर जास्त भार येऊ शकतो. ट्रॅफिकमध्ये अचानक वाढ, असामान्य विनंत्या आणि सर्व्हरच्या कामगिरीत घट यावर लक्ष ठेवून DDoS हल्ल्याची उपस्थिती ओळखता येते. एकाच IP पत्त्यावरून वारंवार येणाऱ्या विनंत्यांसाठी लॉगचे पुनरावलोकन करणे किंवा पोर्ट स्कॅनिंग करणे देखील संभाव्य DDoS हल्ल्याचे संकेत देऊ शकते. संरक्षणाचे अनेक उपाय आहेत, परंतु आपण फक्त मूलभूत गोष्टींवर चर्चा करू.

सीडीएन (कंटेंट डिलिव्हरी नेटवर्क) वापरणे. CDN तुमच्या वेब सर्व्हर आणि वापरकर्त्यांमध्ये मध्यस्थ म्हणून काम करू शकते, DDoS हल्ल्याचा प्रभाव कमी करण्यासाठी ट्रॅफिक वितरित करते आणि सामग्री कॅश करते. CDN मध्ये लोड वितरण आणि ट्रॅफिक फिल्टरिंगसह अंगभूत DDoS संरक्षण यंत्रणा देखील असू शकतात.

फायरवॉल आणि घुसखोरी शोध प्रणाली (आयडीएस/आयपीएस) कॉन्फिगर करणे. आयपी अ‍ॅड्रेस आणि पोर्ट्स सारख्या विविध निकषांवर आधारित ट्रॅफिक फिल्टर करण्यासाठी फायरवॉल कॉन्फिगर केले जाऊ शकतात. आयडीएस/आयपीएस असामान्य ट्रॅफिक वर्तन शोधू शकतात आणि संशयास्पद कनेक्शन ब्लॉक करू शकतात. ही साधने संभाव्य दुर्भावनापूर्ण ट्रॅफिक ट्रॅक करण्यास आणि ब्लॉक करण्यास प्रभावी ठरू शकतात.

DDoS हल्ल्यांचा प्रभाव कमी करण्यासाठी Apache आणि Nginx वेब सर्व्हर कॉन्फिगर करणे.

अपाचेसाठी उपाय म्हणून, आम्ही सक्षम करतो mod_evasive मॉड्यूल. हे करण्यासाठी, खालील ओळ अनकमेंट करा किंवा जोडा httpd.conf or apache2.conf कॉन्फिगरेशन फाइलः

LoadModule evasive20_module modules/mod_evasive.so

त्याच फाईलमध्ये, तुम्हाला सेटिंग्ज ब्लॉक जोडण्याची आवश्यकता आहे:

<IfModule mod_evasive20.c>
# Hash table size for storing request information
DOSHashTableSize 3097

# Number of requests to one page before activating protection
DOSPageCount 2
DOSPageInterval 1

# Number of requests to all pages before activating protection
DOSSiteCount 50
DOSSiteInterval 1

# Blocking period in seconds for IP addresses
DOSBlockingPeriod 10
</IfModule>

त्याचप्रमाणे, आपण सक्रिय करतो मोड_रेटलिमिट मॉड्यूल:

LoadModule ratelimit_module modules/mod_ratelimit.so

आणि कॉन्फिगरेशन जोडा:

<IfModule mod_ratelimit.c>
# Setting the output filter for rate limiting (Rate Limit)
SetOutputFilter RATE_LIMIT

# Beginning of the settings block for the location "/login"
<Location "/login">

# Setting the environment variable rate-limit with a value of 1
SetEnv rate-limit 1

# Ending of the settings block for the location "/login"
</Location>
</IfModule>

साठी कॉन्फिगरेशन Nginx सारखे आहे अपाचे. मध्ये nginx.conf कॉन्फिगरेशन फाइलमध्ये, खालील निर्देशांचा वापर करणे आवश्यक आहे:

http {
...
# Defining a zone for connection limits
limit_conn_zone $binary_remote_addr zone=addr:10m;

# Defining a zone for request limits
limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;

server {
        ...
        # Configuring connection limits
        limit_conn addr 10;

        # Configuring request limits
        limit_req zone=req_zone burst=5;

        ...
    }
}

प्रत्येक सेवेमध्ये बदल केल्यानंतर, त्या पुन्हा लोड करणे आवश्यक आहे:

sudo systemctl restart apache2

किंवा:

sudo systemctl restart nginx

ही उदाहरणे फक्त एक मूलभूत कॉन्फिगरेशन प्रदान करतात, जी विशिष्ट आवश्यकता आणि हल्ल्यांच्या स्वरूपानुसार अधिक अनुकूलित केली जाऊ शकते.

MySQL क्वेरीज ऑप्टिमायझ करणे

वेब सर्व्हरवर MySQL डेटाबेस क्वेरीज ऑप्टिमायझ करणे विविध प्रकारे साध्य केले जाऊ शकते आणि त्यापैकी एक म्हणजे कॉन्फिगरेशन फाइलचे योग्य कॉन्फिगरेशन. सामान्यतः, या फाइलचे नाव दिले जाते my.cnf or my.ini आणि मध्ये स्थित आहे / इत्यादी / or /इत्यादी/मायएसक्यूएल/ तुम्हाला ती उघडावी लागेल आणि खालील बदल करावे लागतील:

[mysqld]
# Location of the file for recording slow queries. Be sure to replace it with your path
log-slow-queries = /var/log/mariadb/slow_queries.log

# Threshold time for considering slow queries (in seconds)
long_query_time = 5

# Enabling recording of queries that do not use indexes
log-queries-not-using-indexes = 1

# Disabling query caching
query_cache_size = 0
query_cache_type = 0
query_cache_limit = 1M

# Size of temporary tables
tmp_table_size = 16M
max_heap_table_size = 16M

# Size of the thread cache
thread_cache_size = 16

# Disabling name resolving
skip-name-resolve = 1

# Size of the InnoDB buffer pool. Set to 50-70% of available RAM
innodb_buffer_pool_size = 800M

# Size of the InnoDB log file
innodb_log_file_size = 200M

सर्व्हर डेटाबेसशी परस्परसंवाद सुलभ करू शकणाऱ्या अतिरिक्त शिफारसींचा देखील विचार करूया:

  1. वापरा स्पष्ट करा SQL क्वेरीच्या अंमलबजावणीचे विश्लेषण करण्यासाठी कमांड द्या. हे तुम्हाला क्वेरीसाठी एक्झिक्युशन प्लॅन मिळवण्यास आणि कोणते इंडेक्स वापरले आहेत, कोणते टेबल स्कॅन केले आहेत इत्यादी ठरवण्यास अनुमती देते.
  2. निर्देशांक डेटा शोध वेगवान करतात, म्हणून योग्यरित्या डिझाइन केलेले निर्देशांक क्वेरी कामगिरीमध्ये लक्षणीय सुधारणा करू शकतात. वारंवार वापरल्या जाणाऱ्या स्तंभांकडे लक्ष द्या WHERE or सामील व्हा परिस्थिती.
  3. वापरणे टाळा निवडा *. टेबलमधील सर्व कॉलम निवडण्याऐवजी, तुमच्या क्वेरीसाठी खरोखर आवश्यक असलेले कॉलमच निर्दिष्ट करा.
  4. मध्ये फंक्शन्स वापरणे टाळा WHERE परिस्थिती. फंक्शन्स वापरणे (जसे की कमी, वरील, डावे, योग्य) मध्ये WHERE परिस्थिती निर्देशांकांना निरुपयोगी बनवू शकतात. परिस्थितींमध्ये त्यांचा थेट वापर टाळण्याचा प्रयत्न करा.
  5. वापर आतील सामील शक्य असेल तिथे, कारण ते सहसा अधिक कार्यक्षम असते. तसेच, जोडण्यासाठी संबंधित स्तंभांमध्ये अनुक्रमणिका असल्याची खात्री करा.
  6. वापर मर्यादा जर तुम्हाला फक्त काही विशिष्ट निकाल मिळवायचे असतील तर परत आलेल्या पंक्तींची संख्या मर्यादित करण्यासाठी.
  7. सर्व्हरवरील भार कमी करण्यासाठी, क्वेरी निकाल कॅशिंग करण्याचा विचार करा, विशेषतः जर ते क्वचितच बदलतात.

मेल सर्व्हर सर्व्हरवर जास्त भार निर्माण करतो

या विभागात, आपण मेल सर्व्हरवर जास्त भार पडत आहे हे कसे ठरवायचे आणि त्याचे ऑपरेशन ऑप्टिमाइझ करण्यासाठी कोणती पावले उचलता येतील याचा शोध घेऊ, ज्यामध्ये मेसेज क्यू तपासणे आणि सर्व्हर पॅरामीटर्स कॉन्फिगर करणे समाविष्ट आहे. मेसेज क्यू तपासण्यापासून सुरुवात करा. मेलक्यू युटिलिटी यामध्ये मदत करू शकते, ती सक्रिय करण्यासाठी, टर्मिनलमध्ये संबंधित कमांड प्रविष्ट करा:

mailq

हे रांगेतील संदेशांची यादी प्रदर्शित करेल, जर असेल तर. प्रत्येक संदेश त्याच्या अद्वितीय ओळखकर्त्यासह आणि पाठवण्याच्या स्थितीबद्दल माहितीसह प्रदर्शित केला जाईल. मेल क्लायंट लॉगचे पुनरावलोकन करून समान परिणाम मिळू शकतो.

बहुतेक प्रकरणांमध्ये, जेव्हा सर्व्हर स्पॅम पाठवायला सुरुवात करतो तेव्हा तो धोक्यात येतो तेव्हा जास्त भार पडतो. तथापि, जर तपासणी केल्यानंतर प्रशासकाला खात्री असेल की सर्व्हरवर बाहेरून हल्ला झालेला नाही आणि वापरकर्ते स्पॅमकडे दुर्लक्ष करत नाहीत, तर मेल सर्व्हर ऑप्टिमाइझ करण्याची वेळ आली आहे. येथे मदत करणारे चरण आहेत:

  1. तुमच्या डोमेनचे DNS रेकॉर्ड योग्यरित्या कॉन्फिगर केले आहेत याची खात्री करा, ज्यामध्ये हे समाविष्ट आहे: हे SPF, डीकेआयएमआणि डीएमएआरसी मेल डिलिव्हरी सुधारण्यासाठी आणि स्पॅमपासून संरक्षण करण्यासाठी रेकॉर्ड. पॅरामीटर्सची योग्य कॉन्फिगरेशन लेखात आढळू शकते मेल सर्व्हर डायग्नोस्टिक्स.
  2. ब्लॉक टाळण्यासाठी आणि मेल डिलिव्हरीचा वेग वाढवण्यासाठी फायरवॉल कॉन्फिगरेशन आणि राउटिंग नियमांसह नेटवर्क सेटिंग्ज तपासा.
  3. सर्व्हर लोडनुसार मेसेज क्यू पॅरामीटर्स कॉन्फिगर करा. यामध्ये कमाल क्यू आकार आणि टाइमआउट सेट करणे समाविष्ट असू शकते.
  4. या लेखात आपण आधी चर्चा केलेल्या उपायांचा विचार करा. कार्यप्रदर्शन सुधारण्यासाठी मेल सर्व्हर डेटाबेस वेळोवेळी ऑप्टिमाइझ करा, डेटा शोध आणि प्रक्रिया जलद करण्यासाठी कॅशिंग यंत्रणा वापरा, जसे की DNS क्वेरी.
  5. जर मेल सर्व्हरवर अजूनही नियमितपणे जास्त भार पडत असेल, तर स्केलिंग पर्यायांचा विचार करा, जसे की मेल सर्व्हरचा क्लस्टर किंवा क्लाउड सोल्यूशन्स वापरणे.

निष्कर्ष

वाढलेला सर्व्हर लोड थेट वेबसाइट लोडिंग गतीवर परिणाम करतो, ज्यामुळे वापरकर्त्याचा अनुभव आणि शोध इंजिनमधील प्रतिष्ठा प्रभावित होते. अशाप्रकारे, या लोडचे प्रभावीपणे व्यवस्थापन संसाधनाची सतत कार्यक्षमता सुनिश्चित करण्यात आणि अभ्यागतांसाठी त्याची सुलभता वाढविण्यात महत्त्वाची भूमिका बजावते.

❮ मागील लेख सर्व्हर लोड डायग्नोस्टिक्स
पुढील लेख ❯ सर्टबॉट: लेट्स एन्क्रिप्ट सर्टिफिकेट स्थापित करत आहे

आम्हाला VPS बद्दल विचारा.

दिवसा किंवा रात्री कोणत्याही वेळी तुमच्या प्रश्नांची उत्तरे देण्यासाठी आम्ही नेहमीच तयार आहोत.