Niini nga artikulo, atong susihon kung ngano nga nadugangan ang pagkarga sa server ug hisgutan ang lainlaing mga paagi aron ma-optimize ang mga proseso sa taas nga karga. Espesyal nga pagtagad ang ihatag sa pag-optimize sa code sa Apache/Nginx ug MySQL, maghisgot kita bahin sa caching isip usa ka auxiliary tool, ug tagdon usab ang posibleng mga hulga sa gawas, sama sa mga pag-atake sa DDOS, ug mga paagi sa pagpugong niini.
Nganong Nahitabo ang Pag-load sa Server
Sa wala pa mopadayon sa pag-optimize sa server, kinahanglan nga maghimo usa ka bug-os nga pagtuki sa karon nga load sa mga kapanguhaan. Naglakip kini sa pagsukod sa load sa CPU, paggamit sa RAM, kalihokan sa network, ug uban pang mahinungdanong mga parameter. Ang pagsabut sa dynamics ug peak loads nagtugot sa pag-ila sa mga bottleneck ug pag-optimize sa alokasyon sa kapanguhaan, sa ingon nagdugang sa kalig-on ug performance sa imprastraktura sa server.
Para sa inisyal nga pag-troubleshoot sa taas nga server load, among girekomendar ang pagpahigayon og a kinatibuk-ang mga diagnostic sa server. Kung kini dili igo, usa ka mas detalyado pagtuki sa mga kahinguhaan gikinahanglan. Isip usa ka auxiliary nga himan, pagsuhid sa mga log sa Linux Makatabang ang server, tungod kay dinhi makita ang gigikanan sa problema sa kadaghanan nga mga kaso.
Pag-optimize sa Apache/Nginx Server
Nadugangan ang Server Load Tungod sa Indexing
Ang dugang nga load tungod sa pag-indeks sa server mahimong mahitabo, pananglitan, kung ang mga search engine mag-scan sa daghang mga panid sa imong site. Kini mahimong mosangpot sa dugang nga paggamit sa mga kahinguhaan sa server ug, tungod niini, makapahinay sa performance sa site. Ang pag-ila sa hinungdan medyo simple; kinahanglan nimo nga ablihan ang file nga nahimutang sa:
/var/www/httpd-logs/sitename.access.log
Kung gi-indeks sa mga search engine, ang user makakita sa mga entri sa mosunod nga kinaiya:
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)"
Ingon usa ka una nga solusyon aron makunhuran ang pagkarga, mahimo nimong gamiton ang setting sa mga meta tag "walay indeks" ug "walay follow" sa mga panid nga dili kinahanglan nga i-index. Ang ikaduha nga solusyon mao ang .htaccess file, diin ang mga entry nga katumbas sa piho nga mga search engine kinahanglan idugang, pananglitan, aron itago gikan sa Yandex ug Google:
SetEnvIfNoCase User-Agent "^Yandex" search_bot SetEnvIfNoCase User-Agent "^Googlebot" search_bot Order Allow,Deny Allow from all Deny from env=search_bot
Sa samang paagi, ang mga pag-edit kinahanglang himoon para sa ubang mga search engine. Kinahanglan nga hinumdoman nga ang mga kapabilidad sa .htaccess dili limitado sa pag-block lamang sa pag-indeks. Among girekomendar nga mas pamilyar sa mga nag-unang bahin niini sa artikulo.
Paggamit sa Caching Settings
Ang sayop nga mga setting sa caching sa server mahimo usab nga mosangpot sa taas nga load. Aron ma-optimize kini nga parameter, ang mga katugbang nga pagbag-o kinahanglan himuon sa mga file sa pag-configure o .htaccess. Sa kaso sa Apache, ang ulahi nga kapilian mas gusto, alang sa Nginx - ang una.
Sa usa ka Apache server, kinahanglan nimo nga ablihan ang .htacess file ug isulod ang mosunod nga code:
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf|doc|docx)$"> Header set Cache-Control "max-age=2592000" </FilesMatch>
Dayon, i-enable ang Tapos na module gamit ang command:
sudo a2enmod expires
Pagkahuman niini, i-restart ang web server:
sudo service apache2 restart
Ug i-aktibo ang module pinaagi sa pagtino:
ExpiresActive On
sa usa ka Nginx server, igo na nga idugang ang mosunod nga code sa configuration file:
location ~* .(jpg|jpeg|gif|png|ico|css|swf|flv|doc|docx)$ { root /var/www/yoursite.com; }
Ug paghimo usa ka pag-reload sa serbisyo:
sudo service nginx restart
Timan-i nga uban niini nga mga setting, ang Tugoti ug Deny ang mga direktiba malaktawan.
Paggamit sa Data Compression
Pag-enable sa data compression gamit ang Gzip sa Apache ug Nginx nga mga web server makatabang sa pagpakunhod sa gidaghanon sa datos nga gipasa tali sa server ug sa kliyente, nga nagpauswag sa performance ug nagpamenos sa oras sa pagkarga sa web page.
Aron makahimo Gzip on Apache, kinahanglan nimo nga i-activate ang mod_deflate module:
sudo a2enmod deflate
Dayon, i-restart ang web server:
sudo service apache2 restart
Ug sa katapusan, idugang ang mosunod nga block sa configuration file o .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>
Kini nga configuration makahimo sa compression alang sa pipila ka mga matang sa mga file ug disable kini alang sa mga hulagway.
Sa kaso sa Nginx, ang configuration mahitabo sa Http block sa configuration file. Ang mosunod nga code kinahanglang idugang:
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;
Susama sa Apache, dinhi gitakda ang mga parameter sa compression alang sa pipila ka mga matang sa mga file. Human sa paghimog mga kausaban sa bisan asa sa mga web server, gikinahanglan ang pag-reload sa serbisyo:
sudo service apache2 restart
Or
sudo service nginx restart
Pag-atake sa DDOS sa Server
Ang taas nga load sa server mahimong mahitabo isip resulta sa pag-atake sa DDoS. Ang pag-ila sa presensya sa usa ka pag-atake sa DDoS mahimo pinaagi sa pag-monitor sa kalit nga pagtaas sa trapiko, dili normal nga mga hangyo, ug pag-ubos sa performance sa server. Ang pagrepaso sa mga log alang sa gibalikbalik nga mga hangyo gikan sa usa ka IP address o pag-scan sa pantalan mahimo usab nga magpakita sa usa ka posible nga pag-atake sa DDoS. Adunay daghang mga lakang sa pagpanalipod, apan hisgutan ra naton ang mga sukaranan.
Paggamit ug CDN (Content Delivery Network). Ang CDN mahimong magsilbing tigpataliwala tali sa imong web server ug mga tiggamit, nag-apod-apod sa trapiko ug nag-cache sa sulod aron makunhuran ang epekto sa pag-atake sa DDoS. Ang mga CDN mahimo usab nga adunay built-in nga mekanismo sa pagpanalipod sa DDoS, lakip ang pag-apod-apod sa load ug pagsala sa trapiko.
Pag-configure sa mga firewall ug intrusion detection system (IDS/IPS). Ang mga firewall mahimong ma-configure aron ma-filter ang trapiko base sa lainlaing mga pamatasan, sama sa mga adres sa IP ug mga pantalan. Ang IDS/IPS makamatikod sa abnormal nga gawi sa trapiko ug makababag sa mga kadudahang koneksyon. Kini nga mga himan mahimong epektibo sa pagsubay ug pagbabag sa posibleng makadaot nga trapiko.
Pag-configure sa mga web server sa Apache ug Nginx aron makunhuran ang epekto sa mga pag-atake sa DDoS.
Ingon usa ka solusyon alang sa Apache, among gipalihok ang mod_evasive module. Sa pagbuhat niini, uncomment o idugang ang mosunod nga linya sa httpd.conf or apache2.conf configuration file:
LoadModule evasive20_module modules/mod_evasive.so
Sa parehas nga file, kinahanglan nimong idugang ang block sa mga setting:
<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>
Sa susama, atong gi-activate ang mod_ratelimit module:
LoadModule ratelimit_module modules/mod_ratelimit.so
Ug idugang ang configuration:
<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>
Ang configuration alang sa Nginx susama sa Apache. Diha sa nginx.conf configuration file, ang mosunod nga mga direktiba kinahanglang gamiton:
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; ... } }
Human sa paghimo sa mga kausaban sa matag usa sa mga serbisyo, sila kinahanglan nga reloaded:
sudo systemctl restart apache2
O:
sudo systemctl restart nginx
Kini nga mga pananglitan naghatag lamang og usa ka sukaranan nga pag-configure, nga mahimo pa nga ipahiangay depende sa piho nga mga kinahanglanon ug ang kinaiya sa mga pag-atake.
Pag-optimize sa MySQL Mga Pangutana
Ang pag-optimize sa mga pangutana sa database sa MySQL sa usa ka web server mahimong makab-ot sa lainlaing mga paagi, ug usa niini ang husto nga pag-configure sa file sa pag-configure. Kasagaran, kini nga file ginganlan akong.cnf or akong.ini ug nahimutang sa / ubp / or /etc/mysql/ direktoryo. Kinahanglan nimo nga ablihan kini ug buhaton ang mosunod nga mga pagbag-o:
[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
Atong tagdon usab ang dugang nga mga rekomendasyon nga makapadali sa interaksyon sa database sa server:
- Gamita ang MAGPAHIMTANG command sa wala pa ang usa ka SQL query aron analisahon ang pagpatuman niini. Gitugotan ka niini nga makakuha usa ka plano sa pagpatuman alang sa pangutana ug mahibal-an kung unsang mga indeks ang gigamit, kung unsang mga lamesa ang gi-scan, ug uban pa.
- Ang mga indeks nagpadali sa pagpangita sa datos, mao nga ang husto nga pagkadisenyo nga mga indeks makapauswag pag-ayo sa performance sa pangutana. Hatagi'g pagtagad ang mga kolum nga kanunay gigamit sa SAAN or DAGHAN kahimtang.
- Paglikay sa paggamit PILI *. Ipiho lamang kadtong mga kolum nga tinuod nga gikinahanglan alang sa imong pangutana, imbes nga pilion ang tanang mga kolum sa usa ka lamesa.
- Likayi ang paggamit sa mga function sa SAAN mga kondisyon. Paggamit sa mga gimbuhaton (sama sa LABI, Upper, SA WALA, TUO) sa SAAN Ang mga kondisyon makahimo sa mga indeks nga walay kapuslanan. Sulayi nga likayan ang ilang direkta nga paggamit sa mga kondisyon.
- Paggamit INNER JOIN kon mahimo, kay kasagaran mas episyente. Usab, siguroha nga ang katugbang nga mga kolum alang sa pag-apil adunay mga indeks.
- Paggamit utlanan aron higpitan ang gidaghanon sa gibalik nga mga laray kung kinahanglan nimo nga makakuha lamang usa ka piho nga gidaghanon sa mga resulta.
- Ikonsiderar ang pag-cache sa mga resulta sa pangutana, labi na kung panagsa ra kini magbag-o, aron makunhuran ang load sa server.
Ang Mail Server Naghimo ug Taas nga Lulan sa Server
Niini nga seksyon, atong susihon kung giunsa pagtino nga ang mail server nakasinati og taas nga karga ug unsa nga mga lakang ang mahimo aron ma-optimize ang operasyon niini, lakip ang pagsusi sa pila sa mensahe ug pag-configure sa mga parameter sa server. Pagsugod sa pagsusi sa pila sa mensahe. Ang mailq Ang utility makatabang niini, aron ma-aktibo kini, isulud ang katugbang nga mando sa terminal:
mailq
Kini magpakita sa usa ka lista sa mga mensahe sa pila, kung aduna man. Ang matag mensahe ipakita uban ang talagsaon nga identifier ug impormasyon bahin sa kahimtang sa pagpadala. Ang susamang resulta mahimong makuha pinaagi sa pagrepaso sa mga log sa mail client.
Sa kadaghanan nga mga kaso, ang taas nga load mahitabo sa higayon nga ang server makompromiso sa diha nga kini magsugod sa pagpadala spam. Bisan pa, kung pagkahuman sa pagsusi ang tagdumala masaligon nga ang server wala giatake gikan sa gawas ug ang mga tiggamit wala magpasagad sa spam, panahon na nga magpadayon sa pag-optimize sa mail server. Ania ang mga lakang nga makatabang:
- Siguruha nga ang mga rekord sa DNS sa imong domain husto nga na-configure, lakip ang SPF, DKIM, Ug DMARC mga rekord aron mapaayo ang pagpadala sa mail ug mapanalipdan batok sa spam. Ang husto nga pag-configure sa mga parameter makita sa artikulo sa mga diagnostic sa mail server.
- Susiha ang mga setting sa network, lakip ang configuration sa firewall ug mga lagda sa pag-ruta, aron malikayan ang mga block ug mapadali ang paghatud sa mail.
- I-configure ang mga parameter sa queue sa mensahe sumala sa load sa server. Mahimong maglakip kini sa pagtakda sa labing taas nga gidak-on sa pila ug mga timeout.
- Binagbinaga ang mga solusyon nga ginbinagbinag naton sa sini nga artikulo sang una. Panagsa nga pag-optimize sa database sa mail server aron mapauswag ang pasundayag, gamita ang mga mekanismo sa pag-cache aron mapadali ang pagpangita ug pagproseso sa datos, sama sa mga pangutana sa DNS.
- Kung ang mail server kanunay gihapon nga makasugat og taas nga karga, hunahunaa ang mga kapilian sa pag-scale, sama sa paggamit sa usa ka pundok sa mga mail server o mga solusyon sa panganod.
Panapos
Ang dugang nga load sa server direkta nga nakaapekto sa katulin sa pagkarga sa website, nga sa katapusan nakaapekto sa kasinatian sa gumagamit ug reputasyon sa mga search engine. Sa ingon, ang epektibo nga pagdumala sa kini nga karga adunay hinungdanon nga papel sa pagsiguro sa padayon nga pagpaandar sa kapanguhaan ug pagdugang sa pagka-access niini alang sa mga bisita.