Com controlar la càrrega del servidor web Apache i les estadístiques de la pàgina


En aquest article, aprendràs a controlar la càrrega i les sol·licituds del servidor web Apache mitjançant el mòdul mod_status a les teves distribucions de Linux com CentOS, RHEL i Fedora.

Què és mod_status?

mod_status és un mòdul Apache que ajuda a controlar la càrrega del servidor web i les connexions httpd actuals amb una interfície HTML a la qual es pot accedir mitjançant un navegador web.

El mod_status d'Apache mostra una pàgina HTML senzilla que conté la informació sobre les estadístiques actuals del servidor web, inclosa.

  • Nombre total de sol·licituds entrants
  • Nombre total de bytes i servidor de recomptes
  • L'ús de la CPU del servidor web
  • Càrrega del servidor
  • Temps d'activitat del servidor
  • Trànsit total
  • Nombre total de treballadors inactius
  • PID amb els respectius clients i molts més.

El projecte Apache predeterminat va habilitar la seva pàgina d'estadístiques del servidor per al públic en general. Per tenir una demostració de la pàgina d'estat del lloc web ocupat, visiteu.

  • https://status.apache.org/

Hem utilitzat el següent entorn de prova per a aquest article per explorar més sobre mod_status amb alguns exemples pràctics i captures de pantalla.

  1. Sistema operatiu: CentOS 8/7
  2. Aplicació: servidor web Apache
  3. Adreça IP: 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Fitxer de configuració d'Apache: /etc/httpd/conf/httpd.conf
  6. Port HTTP predeterminat: 80 TCP
  7. Paràmetres de configuració de prova: httpd -t

Els requisits previs per a aquest tutorial són que ja hauríeu de saber com instal·lar i configurar un servidor Apache bàsic. Si no sabeu com configurar Apache, llegiu l'article següent que us pot ajudar a configurar el vostre propi servidor web Apache.

  1. Creeu el vostre propi servidor web i allotgeu un lloc web a Linux

Com habilitar mod_status a Apache

La instal·lació per defecte d'Apache ve amb mod_status habilitat. Si no, assegureu-vos d'activar-lo al fitxer de configuració d'Apache.

 vi /etc/httpd/conf/httpd.conf

Cerqueu la paraula \mod_status o seguiu desplaçant-vos cap avall fins que trobeu una línia que contingui.

#LoadModule status_module modules/mod_status.so

Si veieu un caràcter # al començament de LoadModule, vol dir que mod_status està desactivat. Elimineu el '#' per habilitar mod_status.

LoadModule status_module modules/mod_status.so

Ara torneu a cercar la paraula \Ubicació o desplaceu-vos cap avall fins que trobeu una secció per a mod_status que hauria de semblar a la següent.

# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

A la secció anterior, descomenteu les línies de la directiva d'ubicació, SetHandler i les restriccions de directoris segons les vostres necessitats. Per exemple, ho faig senzill amb l'ordre Permetre, denegar i està permès per a tothom.

<Location /server-status>
   SetHandler server-status
   Order allow,deny
   Deny from all
   Allow from all 
</Location>

Nota: La configuració anterior és la configuració predeterminada per al lloc web d'Apache per defecte (lloc web únic). Si heu creat un o més hosts virtuals d'Apache, la configuració anterior no funcionarà.

Per tant, bàsicament, heu de definir la mateixa configuració per a cada host virtual per a qualsevol domini que hàgiu configurat a Apache. Per exemple, la configuració de l'amfitrió virtual per a mod_status tindrà aquest aspecte.

<VirtualHost *:80>
    ServerAdmin [email 
    DocumentRoot /var/www/html/example.com
    ServerName example.com
    ErrorLog logs/example.com-error_log
    CustomLog logs/example.com-access_log common
<Location /server-status>
   SetHandler server-status
   Order allow,deny
   Deny from all
   Allow from example.com 
</Location>
</VirtualHost>

La configuració ExtendedStatus afegeix més informació a la pàgina d'estadístiques, com ara l'ús de la CPU, la sol·licitud per segon, el trànsit total, etc. Per activar-ho, editeu el mateix fitxer httpd.conf i cerqueu la paraula \Extended i Descomenteu la línia i establiu l'estat \On per a la directiva ExtendedStatus.

# ExtendedStatus controls whether Apache will generate "full" status
# information (ExtendedStatus On) or just basic information (ExtendedStatus
# Off) when the "server-status" handler is called. The default is Off.
#
ExtendedStatus On

Ara assegureu-vos que heu activat i configurat correctament la pàgina d'estat del servidor Apache. També podeu comprovar si hi ha errors a la configuració httpd.conf mitjançant l'ordre següent.

 httpd -t

Syntax OK

Un cop obtingueu la sintaxi correcte, podreu reiniciar el servei httpd.

 service httpd restart
OR
 systemctl restart httpd
Stopping httpd:                                          [  OK  ]
Starting httpd:                                          [  OK  ]

Es podrà accedir a la pàgina d'estat d'Apache mitjançant el vostre nom de domini amb /server-status als URL següents.

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

Veureu alguna cosa semblant a la pàgina següent amb ExtendedStatus activat.

A la instantània anterior, podeu veure que una interfície HTML, que mostra tota la informació sobre el temps d'activitat del servidor, processa l'identificador amb el seu client respectiu, la pàgina a la qual estan intentant accedir.

També mostra el significat i l'ús de totes les abreviatures utilitzades per mostrar l'estat, cosa que ens ajuda a entendre millor la situació.

També podeu actualitzar la pàgina cada segons (per exemple, 5 segons) per veure les estadístiques actualitzades. Per configurar l'actualització automàtica, afegiu “?refresh=N” al final de l'URL. On es pot substituir N amb el nombre de segons que voleu que s'actualitzi la vostra pàgina.

http://serveripaddress/server-status/?refresh=5

També podeu veure la pàgina d'estat d'Apache des de la interfície de línia d'ordres mitjançant els navegadors especials de línia d'ordres anomenats enllaços o lynx. Podeu instal·lar-los mitjançant la utilitat de gestor de paquets predeterminada anomenada yum, tal com es mostra a continuació.

# yum install links

OR

# yum install lynx

Un cop instal·lat, podeu obtenir les mateixes estadístiques al vostre terminal mitjançant l'ordre següent.

 links http://serveripaddress/server-status
OR
 lynx http://serveripaddress/server-status
OR
  /etc/init.d/httpd fullstatus
                     Apache Server Status for localhost
   Server Version: Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3
   Server Built: Aug 13 2013 17:29:28

   --------------------------------------------------------------------------
   Current Time: Tuesday, 14-Jan-2014 04:34:13 EST
   Restart Time: Tuesday, 14-Jan-2014 00:33:05 EST
   Parent Server Generation: 0
   Server uptime: 4 hours 1 minute 7 seconds
   Total accesses: 2748 - Total Traffic: 9.6 MB
   CPU Usage: u.9 s1.06 cu0 cs0 - .0135% CPU load
   .19 requests/sec - 695 B/second - 3658 B/request
   1 requests currently being processed, 4 idle workers
 .__.__W...

   Scoreboard Key:
   "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
   "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
   "C" Closing connection, "L" Logging, "G" Gracefully finishing,
   "I" Idle cleanup of a worker, "." Open slot with no current process

Srv PID     Acc    M CPU   SS  Req Conn Child Slot     Client        VHost             Request
0-0 -    0/0/428   . 0.30 5572 0   0.0  0.00  1.34 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0
                                                                               GET
1-0 5606 0/639/639 _ 0.46 4    0   0.0  2.18  2.18 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
                                                                               GET
2-0 5607 0/603/603 _ 0.43 0    0   0.0  2.09  2.09 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
3-0 -    0/0/337   . 0.23 5573 0   0.0  0.00  1.09 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0
                                                                               GET
4-0 5701 0/317/317 _ 0.23 9    0   0.0  1.21  1.21 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
                                                                               GET
5-0 5708 0/212/213 _ 0.15 6    0   0.0  0.85  0.85 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
6-0 5709 0/210/210 W 0.16 0    0   0.0  0.84  0.84 127.0.0.1      5.175.142.66 GET /server-status
                                                                               HTTP/1.1
7-0 -    0/0/1     . 0.00 5574 0   0.0  0.00  0.00 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0

   --------------------------------------------------------------------------

    Srv  Child Server number - generation
    PID  OS process ID
    Acc  Number of accesses this connection / this child / this slot
     M   Mode of operation
    CPU  CPU usage, number of seconds
    SS   Seconds since the beginning of the most recent request
    Req  Milliseconds required to process most recent request
   Conn  Kilobytes transferred this connection
   Child Megabytes transferred this child
   Slot  Total megabytes transferred this slot
   --------------------------------------------------------------------------

    Apache/2.2.15 (CentOS) Server at localhost Port 80

Conclusió

El mòdul mod_status d'Apache és una eina de supervisió molt útil per controlar el rendiment de l'activitat d'un servidor web i pot destacar els problemes. Per obtenir més informació, llegiu la pàgina d'estat que us pot ajudar a convertir-vos en un administrador de servidor web amb més èxit.

  1. Pàgina d'inici d'Apache mod_status

De moment, això és tot per a mod_status, trobarem alguns trucs i consells més sobre Apache en futurs tutorials. Fins aleshores, sigueu geek i estigueu atents a linux-console.net i no us oblideu d'afegir els vostres valuosos comentaris.