معلومات جي بنياد تي پرافٽ سرور سروس سان ڪم ڪرڻ لاءِ سادي هدايتون
مک معلومات جي بنياد تي سرور لوڊ گهٽائڻ

سرور لوڊ گهٽائڻ


هن آرٽيڪل ۾، اسين سرور لوڊ ۾ واڌ ڇو ٿيندي آهي ان تي غور ڪنداسين ۽ هاءِ لوڊ عملن کي بهتر بڻائڻ جي مختلف طريقن تي بحث ڪنداسين. Apache/Nginx ۽ MySQL ۾ ڪوڊ آپٽمائيزيشن تي خاص ڌيان ڏنو ويندو، اسين ڪيشنگ کي هڪ معاون اوزار طور ڳالهائينداسين، ۽ ممڪن ٻاهرين خطرن، جهڙوڪ DDOS حملا، ۽ انهن کي روڪڻ جا طريقا پڻ غور ڪنداسين.

سرور لوڊ ڇو ٿئي ٿو

سرور جي اصلاح ڏانهن اڳتي وڌڻ کان اڳ، وسيلن تي موجوده لوڊ جو مڪمل تجزيو ڪرڻ ضروري آهي. ان ۾ سي پي يو لوڊ، رام استعمال، نيٽ ورڪ سرگرمي، ۽ ٻيا اهم پيرا ميٽرز کي ماپڻ شامل آهن. ڊائنامڪس ۽ چوٽي لوڊ کي سمجهڻ سان رڪاوٽن جي سڃاڻپ ۽ وسيلن جي مختص کي بهتر ڪرڻ جي اجازت ملندي آهي، انهي ڪري سرور انفراسٽرڪچر جي استحڪام ۽ ڪارڪردگي ۾ اضافو ٿيندو آهي.

سرور جي لوڊ جي شروعاتي خرابي جي حل لاءِ، اسان هڪ عام سرور تشخيص ڪرڻ جي صلاح ڏيون ٿا . جيڪڏهن اهو ڪافي نه آهي، ته وسيلن جو وڌيڪ تفصيلي تجزيو ضروري آهي. هڪ معاون اوزار جي طور تي، لينڪس سرور جي لاگ کي ڳولڻ مددگار ثابت ٿي سگهي ٿو، ڇاڪاڻ ته هي اهو هنڌ آهي جتي اڪثر ڪيسن ۾ مسئلي جو ذريعو ملي ٿو.

اپاچي/نينگڪس سرور کي بهتر بنائڻ

انڊيڪسنگ جي ڪري سرور لوڊ وڌي ويو

سرور تي انڊيڪسنگ جي ڪري لوڊ ۾ اضافو ٿي سگهي ٿو، مثال طور، جڏهن سرچ انجن توهان جي سائيٽ تي وڏي تعداد ۾ صفحن کي اسڪين ڪن ٿا. اهو سرور وسيلن جي استعمال ۾ اضافو ڪري سگهي ٿو ۽ نتيجي طور، سائيٽ جي ڪارڪردگي کي سست ڪري سگهي ٿو. سبب جي سڃاڻپ نسبتا سادو آهي؛ توهان کي هيٺ ڏنل فائل کولڻ جي ضرورت آهي:

/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)"

لوڊ گهٽائڻ لاءِ پهرين حل جي طور تي، توهان انهن صفحن تي ميٽا ٽيگ "noindex" ۽ "nofollow" جي سيٽنگ استعمال ڪري سگهو ٿا جن کي انڊيڪس ڪرڻ جي ضرورت ناهي. ٻيو حل .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 ۾ لاڳاپيل تبديليون ڪرڻ گهرجن . Apache جي صورت ۾، 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

نوٽ ڪريو ته انهن سيٽنگن سان، اجازت ڏيو ۽ انڪار ڪريو هدايتون نظرانداز ڪيون وينديون.

ڊيٽا ڪمپريشن استعمال ڪندي

Apache ۽ Nginx ويب سرورز تي Gzip استعمال ڪندي ڊيٽا ڪمپريشن کي فعال ڪرڻ سان سرور ۽ ڪلائنٽ جي وچ ۾ منتقل ٿيندڙ ڊيٽا جي مقدار کي گهٽائڻ ۾ مدد ملندي آهي، جيڪا ڪارڪردگي کي بهتر بڻائي ٿي ۽ ويب پيج لوڊ ٿيڻ جو وقت گهٽائي ٿي.

Apache تي Gzip کي فعال ڪرڻ لاءِ ، توهان کي 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 حملي جي نشاندهي ڪري سگهي ٿو. ڪيترائي حفاظتي اپاءَ آهن، پر اسان صرف بنيادي ڳالهين تي بحث ڪنداسين.

سي ڊي اين (ڪنٽينٽ ڊليوري نيٽ ورڪ) استعمال ڪندي . سي ڊي اين توهان جي ويب سرور ۽ استعمال ڪندڙن جي وچ ۾ هڪ وچولي طور ڪم ڪري سگهي ٿو، ٽرئفڪ ورهائي ٿو ۽ مواد کي ڪيش ڪري ٿو ته جيئن ڊي ڊي او ايس حملي جي اثر کي گهٽائي سگهجي. سي ڊي اين ۾ بلٽ ان ڊي ڊي او ايس تحفظ جا طريقا پڻ ٿي سگهن ٿا، جن ۾ لوڊ ورهائڻ ۽ ٽرئفڪ فلٽرنگ شامل آهن.

فائر والز ۽ انٽروجن ڊيٽيڪشن سسٽم (IDS/IPS) کي ترتيب ڏيڻ . فائر والز کي مختلف معيارن جي بنياد تي ٽرئفڪ کي فلٽر ڪرڻ لاءِ ترتيب ڏئي سگهجي ٿو، جهڙوڪ IP پتي ۽ پورٽ. IDS/IPS غير معمولي ٽرئفڪ رويي کي ڳولي سگهي ٿو ۽ مشڪوڪ ڪنيڪشن کي بلاڪ ڪري سگهي ٿو. اهي اوزار ممڪن طور تي خراب ٽرئفڪ کي ٽريڪ ڪرڻ ۽ بلاڪ ڪرڻ ۾ اثرائتو ٿي سگهن ٿا.

DDoS حملن جي اثر کي گهٽائڻ لاءِ Apache ۽ Nginx ويب سرورز کي ترتيب ڏيڻ.

اپاچي جي حل جي طور تي، اسان mod_evasive ماڊيول کي فعال ڪريون ٿا. اهو ڪرڻ لاءِ، httpd.conf يا 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>

ساڳي طرح، اسين mod_ratelimit ماڊيول کي چالو ڪريون ٿا:

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 لاءِ ترتيب Apache وانگر آهي . 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 يا my.ini آهي ۽ /etc/ يا /etc/mysql/ ڊاريڪٽري ۾ واقع آهي . توهان کي ان کي کولڻ ۽ هيٺيون تبديليون ڪرڻ جي ضرورت آهي:

[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. انڊيڪس ڊيٽا جي ڳولا کي تيز ڪن ٿا، تنهنڪري صحيح طرح سان ٺهيل انڊيڪس سوال جي ڪارڪردگي کي بهتر بڻائي سگهن ٿا. ڪالمن تي ڌيان ڏيو جيڪي اڪثر استعمال ڪيا ويندا آهن جڏهن or JOIN حالتون.
  3. استعمال ڪرڻ کان بچڻ چونڊيو *. ٽيبل ۾ سڀني ڪالمن کي چونڊڻ جي بدران، صرف انهن ڪالمن کي بيان ڪريو جيڪي توهان جي سوال لاءِ واقعي ضروري آهن.
  4. ۾ افعال استعمال ڪرڻ کان پاسو ڪريو جڏهن حالتون. افعال استعمال ڪرڻ (جهڙوڪ گهٽ, مٿاهون, کاٻو, ساڄو۾ جڏهن حالتون انڊيڪس کي بيڪار بڻائي سگهن ٿيون. حالتن ۾ انهن جي سڌي استعمال کان بچڻ جي ڪوشش ڪريو.
  5. استعمال انٽرويو JOIN جتي ممڪن هجي، ڇاڪاڻ ته اهو عام طور تي وڌيڪ ڪارآمد هوندو آهي. انهي سان گڏ، پڪ ڪريو ته شامل ٿيڻ لاءِ لاڳاپيل ڪالمن ۾ انڊيڪس آهن.
  6. استعمال حد جيڪڏهن توهان کي صرف ڪجهه خاص نتيجا حاصل ڪرڻ جي ضرورت آهي ته واپس ڪيل قطارن جي تعداد کي محدود ڪرڻ لاءِ.
  7. سرور لوڊ گهٽائڻ لاءِ، سوال جي نتيجن کي ڪيش ڪرڻ تي غور ڪريو، خاص طور تي جيڪڏهن اهي گهٽ ۾ گهٽ تبديل ٿين ٿا.

ميل سرور سرور تي هاءِ لوڊ ٺاهي ٿو

هن حصي ۾، اسين ڳولا ڪنداسين ته ڪيئن طئي ڪجي ته ميل سرور وڌيڪ لوڊ محسوس ڪري رهيو آهي ۽ ان جي آپريشن کي بهتر بڻائڻ لاءِ ڪهڙا قدم کڻي سگهجن ٿا، جنهن ۾ پيغام جي قطار کي چيڪ ڪرڻ ۽ سرور جي پيرا ميٽرز کي ترتيب ڏيڻ شامل آهن. پيغام جي قطار کي چيڪ ڪرڻ سان شروع ڪريو. mailq يوٽيليٽي هن ۾ مدد ڪري سگهي ٿي، ان کي چالو ڪرڻ لاءِ، ٽرمينل ۾ لاڳاپيل ڪمانڊ داخل ڪريو:

mailq

هي قطار ۾ پيغامن جي هڪ فهرست ڏيکاريندو، جيڪڏهن ڪو هجي. هر پيغام ان جي منفرد سڃاڻپ ڪندڙ ۽ موڪلڻ جي حيثيت بابت معلومات سان ڏيکاريو ويندو. ميل ڪلائنٽ لاگز جو جائزو وٺڻ سان ساڳيو نتيجو حاصل ڪري سگهجي ٿو.

گھڻن ڪيسن ۾، سرور جي خراب ٿيڻ جي صورت ۾ وڌيڪ لوڊ ٿئي ٿو جڏهن اهو اسپام موڪلڻ شروع ڪري ٿو. بهرحال، جيڪڏهن چيڪ ڪرڻ کان پوءِ ايڊمنسٽريٽر کي يقين آهي ته سرور تي ٻاهران حملو نه ڪيو ويو آهي ۽ استعمال ڪندڙ اسپام کي نظرانداز نه ڪري رهيا آهن، ته اهو وقت آهي ته ميل سرور کي بهتر بڻائڻ لاءِ اڳتي وڌو وڃي. هتي اهي قدم آهن جيڪي مدد ڪندا:

  1. پڪ ڪريو ته توهان جي ڊومين جا DNS ريڪارڊ صحيح طرح سان ترتيب ڏنل آهن، بشمول ايس اي ايف, ڊي آءِ ايم ايم، ۽ ڊي ايم آر سي ميل پهچائڻ کي بهتر بڻائڻ ۽ اسپام کان بچائڻ لاءِ رڪارڊ. پيرا ميٽرز جي صحيح ترتيب مضمون ۾ ملي سگهي ٿي ميل سرور جي تشخيص.
  2. بلاڪ کان بچڻ ۽ ميل پهچائڻ کي تيز ڪرڻ لاءِ نيٽ ورڪ سيٽنگون چيڪ ڪريو، جن ۾ فائر وال ترتيب ۽ روٽنگ قاعدا شامل آهن.
  3. سرور لوڊ جي مطابق پيغام جي قطار جي پيرا ميٽرز کي ترتيب ڏيو. ان ۾ وڌ ۾ وڌ قطار جي سائيز ۽ ٽائم آئوٽ سيٽنگ شامل ٿي سگھي ٿي.
  4. هن مضمون ۾ اڳ ۾ بحث ڪيل حلن تي غور ڪريو. ڪارڪردگي بهتر ڪرڻ لاءِ ميل سرور ڊيٽابيس کي وقتي طور تي بهتر بڻايو، ڊيٽا جي ڳولا ۽ پروسيسنگ کي تيز ڪرڻ لاءِ ڪيشنگ ميڪانيزم استعمال ڪريو، جهڙوڪ DNS سوال.
  5. جيڪڏهن ميل سرور اڃا تائين باقاعدي طور تي وڌيڪ لوڊ کي منهن ڏئي ٿو، ته اسڪيلنگ آپشنز تي غور ڪريو، جهڙوڪ ميل سرورز جي ڪلسٽر يا ڪلائوڊ حل استعمال ڪرڻ.

ٿڪل

سرور لوڊ ۾ واڌ سڌو سنئون ويب سائيٽ جي لوڊ ٿيڻ جي رفتار کي متاثر ڪري ٿي، آخرڪار سرچ انجن ۾ صارف جي تجربي ۽ شهرت کي متاثر ڪري ٿي. ان ڪري، هن لوڊ کي مؤثر طريقي سان منظم ڪرڻ وسيلن جي مسلسل ڪارڪردگي کي يقيني بڻائڻ ۽ سياحن لاءِ ان جي رسائي کي وڌائڻ ۾ اهم ڪردار ادا ڪري ٿو.


اسان کان VPS بابت پڇو

اسين ڏينهن يا رات جي ڪنهن به وقت توهان جي سوالن جا جواب ڏيڻ لاءِ هميشه تيار آهيون.