په دې مقاله کې، موږ به په دې اړه بحث وکړو چې ولې د سرور بار زیاتیږي او د لوړ بار پروسو د اصلاح کولو لپاره په مختلفو لارو بحث کوو. په اپاچي/نګینکس او مای ایس کیو ایل کې د کوډ اصلاح کولو ته به ځانګړې پاملرنه وشي، موږ به د مرستندویه وسیلې په توګه د کیش کولو په اړه وغږیږو، او همدارنګه به د احتمالي بهرني ګواښونو، لکه د 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 او ګوګل څخه پټولو لپاره:
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
په الف نګینکس سرور، دا د ترتیب فایل ته لاندې کوډ اضافه کولو لپاره کافي دی:
location ~* .(jpg|jpeg|gif|png|ico|css|swf|flv|doc|docx)$ {
root /var/www/yoursite.com;
}
او د خدماتو بیا بارول ترسره کړئ:
sudo service nginx restart
په یاد ولرئ چې د دې ترتیباتو سره، د اجازه او انکار لارښوونې به له پامه وغورځول شي.
د معلوماتو کمپریشن کارول
د معلوماتو کمپریشن فعالول د کارولو سره Gzip په اپاچي او نګینکس ویب سرورونو کې د سرور او مراجعینو ترمنځ د لیږدول شوي معلوماتو مقدار کمولو کې مرسته کوي، کوم چې فعالیت ښه کوي او د ویب پاڼې د بارولو وخت کموي.
د وړولو لپاره 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>
دا ترتیب د ځینو ډولونو فایلونو لپاره کمپریشن فعالوي او د انځورونو لپاره یې غیر فعالوي.
په د قضیې نګینکس، ترتیب په کې واقع کیږي 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 (د منځپانګې رسولو شبکه) کارول. CDN کولی شي ستاسو د ویب سرور او کاروونکو ترمنځ د منځګړي په توګه کار وکړي، د DDoS برید اغیز کمولو لپاره ټرافیک او کیش کول مینځپانګه توزیع کوي. CDN کولی شي د DDoS محافظت میکانیزمونه هم ولري، پشمول د بار ویش او ټرافیک فلټر کول.
د اور وژنې او د مداخلې کشف سیسټمونو (IDS/IPS) تنظیم کول. د فایر والونه د مختلفو معیارونو، لکه IP پتې او پورټونو پر بنسټ د ټرافیک فلټر کولو لپاره تنظیم کیدی شي. IDS/IPS کولی شي غیر معمولي ټرافیک چلند کشف کړي او شکمن اړیکې بندې کړي. دا وسایل کولی شي د احتمالي ناوړه ټرافیک تعقیب او بندولو کې اغیزمن وي.
د DDoS بریدونو اغیز کمولو لپاره د اپاچي او نګینکس ویب سرورونو تنظیم کول.
د اپاچي لپاره د حل په توګه، موږ فعالوو 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.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
راځئ چې اضافي سپارښتنې هم په پام کې ونیسو چې کولی شي د سرور ډیټابیس سره تعامل اسانه کړي:
- د استفاده څرګنده یې کړه د SQL پوښتنې څخه مخکې د هغې د اجرا کولو تحلیل کولو لپاره قومانده. دا تاسو ته اجازه درکوي چې د پوښتنې لپاره د اجرا کولو پلان ترلاسه کړئ او معلومه کړئ چې کوم شاخصونه کارول کیږي، کوم جدولونه سکین شوي، او نور.
- شاخصونه د معلوماتو لټون ګړندی کوي، نو په سمه توګه ډیزاین شوي شاخصونه کولی شي د پوښتنې فعالیت د پام وړ ښه کړي. هغو ستنو ته پاملرنه وکړئ چې په مکرر ډول کارول کیږي کله چې or کول شرایط.
- له کارولو ډډه وکړئ انتخاب *. یوازې هغه ستنې مشخص کړئ چې ستاسو د پوښتنې لپاره واقعیا اړین دي، د دې پرځای چې په جدول کې ټول ستنې غوره کړئ.
- د دندو کارولو څخه ډډه وکړئ کله چې شرایط. د دندو کارول (لکه ښکته, اپر, LEFT, حق) په کله چې شرایط کولی شي شاخصونه بې ګټې کړي. هڅه وکړئ چې په شرایطو کې د دوی مستقیم کارولو څخه مخنیوی وکړئ.
- کارول دننه شامل شئ چیرته چې امکان ولري، ځکه چې دا معمولا ډیر اغیزمن وي. همدارنګه، ډاډ ترلاسه کړئ چې د یوځای کیدو لپاره اړونده ستنې شاخصونه لري.
- کارول حد که تاسو اړتیا لرئ چې یوازې یو ټاکلی شمیر پایلې ترلاسه کړئ، د بیرته راستنیدونکو قطارونو شمیر محدود کړئ.
- د سرور بار کمولو لپاره د پوښتنو پایلو د کیش کولو په اړه فکر وکړئ، په ځانګړې توګه که چیرې دوی په ندرت سره بدلون ومومي.
د برېښنالیک سرور په سرور کې لوړ بار رامینځته کوي
پدې برخه کې، موږ به وپلټو چې څنګه معلومه کړو چې د بریښنالیک سرور لوړ بار تجربه کوي او د دې د فعالیت د ښه کولو لپاره کوم ګامونه اخیستل کیدی شي، په شمول د پیغام قطار چک کول او د سرور پیرامیټرې تنظیم کول. د پیغام قطار چک کولو سره پیل وکړئ. میلق یوټیلټي کولی شي پدې کې مرسته وکړي، د دې فعالولو لپاره، په ټرمینل کې اړونده کمانډ دننه کړئ:
mailq
دا به په کتار کې د پیغامونو لیست ښکاره کړي، که چیرې وي. هر پیغام به د خپل ځانګړي پیژندونکي او د لیږلو حالت په اړه معلوماتو سره ښکاره شي. ورته پایله د بریښنالیک مراجعینو لاګونو بیاکتنې سره ترلاسه کیدی شي.
په ډیری مواردو کې، د سرور د خرابیدو په صورت کې لوړ بار رامینځته کیږي کله چې دا سپیم لیږل پیل کوي. په هرصورت، که چیرې د چک کولو وروسته مدیر ډاډه وي چې سرور له بهر څخه برید شوی نه دی او کاروونکي سپیم ته پام نه کوي، نو دا وخت دی چې د بریښنالیک سرور اصلاح کولو ته لاړ شئ. دلته هغه ګامونه دي چې مرسته به وکړي:
- ډاډ ترلاسه کړئ چې ستاسو د ډومین DNS ریکارډونه په سمه توګه تنظیم شوي، په شمول د مک, DKIM، او DMARC د بریښنالیک رسولو ښه کولو او د سپیم څخه د ساتنې لپاره ریکارډونه. د پیرامیټرو سمه ترتیب په مقاله کې موندل کیدی شي د برېښناليک سرور تشخيصونه.
- د شبکې ترتیبات وګورئ، په شمول د فایر وال ترتیب او روټینګ قواعد، ترڅو د بلاکونو څخه مخنیوی وشي او د بریښنالیک رسولو سرعت زیات شي.
- د سرور بار سره سم د پیغام قطار پیرامیټرې تنظیم کړئ. پدې کې ممکن د قطار اعظمي اندازه او وخت پای ته رسیدل شامل وي.
- هغه حل لارې په پام کې ونیسئ چې موږ یې په دې مقاله کې مخکې بحث کړی و. د فعالیت ښه کولو لپاره په دوره یي ډول د میل سرور ډیټابیس غوره کړئ، د معلوماتو لټون او پروسس کولو ګړندي کولو لپاره د کیش کولو میکانیزمونه وکاروئ، لکه د DNS پوښتنې.
- که چیرې د بریښنالیک سرور لاهم په منظم ډول د لوړ بار سره مخ شي، د اندازه کولو اختیارونه په پام کې ونیسئ، لکه د بریښنالیک سرورونو کلستر یا کلاوډ حلونه کارول.
پایله
د سرور بار زیاتیدل په مستقیم ډول د ویب پاڼې د بارولو سرعت اغیزه کوي، چې په نهایت کې د کاروونکي تجربه او د لټون انجنونو کې شهرت اغیزه کوي. په دې توګه، د دې بار په مؤثره توګه اداره کول د سرچینې دوامداره فعالیت ډاډمن کولو او د لیدونکو لپاره د هغې لاسرسي زیاتولو کې کلیدي رول لوبوي.