ค้นหาเว็บไซต์

วิธีตรวจสอบการโหลดเว็บเซิร์ฟเวอร์ Apache และสถิติเพจ


ในบทความนี้ คุณจะได้เรียนรู้วิธีตรวจสอบโหลดของเว็บเซิร์ฟเวอร์ Apache และคำขอโดยใช้โมดูล mod_status ในการกระจาย Linux ของคุณ เช่น CentOS, RHEL และ Fedora

mod_status คืออะไร?

mod_status คือโมดูล Apache ที่ช่วยตรวจสอบโหลดของเว็บเซิร์ฟเวอร์และการเชื่อมต่อ httpd ปัจจุบันด้วยอินเทอร์เฟซ HTML ที่สามารถเข้าถึงได้ผ่านเว็บเบราว์เซอร์

mod_status ของ Apache แสดงหน้า HTML ธรรมดาที่มีข้อมูลเกี่ยวกับสถิติปัจจุบันของเว็บเซิร์ฟเวอร์รวมทั้ง

  • จำนวนคำขอที่เข้ามาทั้งหมด
  • จำนวนไบต์และจำนวนเซิร์ฟเวอร์ทั้งหมด
  • การใช้งาน CPU ของเว็บเซิร์ฟเวอร์
  • โหลดเซิร์ฟเวอร์
  • เวลาทำงานของเซิร์ฟเวอร์
  • การเข้าชมทั้งหมด
  • จำนวนคนงานที่ไม่ได้ใช้งานทั้งหมด
  • PID กับลูกค้าที่เกี่ยวข้องและอีกมากมาย

โครงการ Apache เริ่มต้นเปิดใช้งานหน้าสถิติเซิร์ฟเวอร์ของตนต่อสาธารณะทั่วไป หากต้องการดูการสาธิตหน้าสถานะของเว็บไซต์ที่ไม่ว่าง โปรดไปที่

  • https://status.apache.org/
สภาพแวดล้อมการทดสอบ

เราได้ใช้ สภาพแวดล้อมการทดสอบ ต่อไปนี้สำหรับบทความนี้เพื่อสำรวจเพิ่มเติมเกี่ยวกับ mod_status พร้อมตัวอย่างและภาพหน้าจอที่ใช้งานได้จริง

  1. ระบบปฏิบัติการ – CentOS 8/7
  2. แอปพลิเคชัน – เว็บเซิร์ฟเวอร์ Apache
  3. ที่อยู่ IP – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. ไฟล์การกำหนดค่า Apache – /etc/httpd/conf/httpd.conf
  6. พอร์ต HTTP เริ่มต้น – 80 TCP
  7. ทดสอบการตั้งค่าการกำหนดค่า – httpd -t

ข้อกำหนดเบื้องต้นสำหรับบทช่วยสอนนี้คือ คุณควรทราบวิธีการติดตั้งและกำหนดค่า เซิร์ฟเวอร์ Apache พื้นฐาน แล้ว หากคุณไม่ทราบวิธีตั้งค่า Apache โปรดอ่านบทความต่อไปนี้ซึ่งอาจช่วยคุณในการตั้งค่า Apache Web Server ของคุณเอง

  1. สร้างเว็บเซิร์ฟเวอร์ของคุณเองและโฮสต์เว็บไซต์ใน Linux

วิธีเปิดใช้งาน mod_status ใน Apache

การติดตั้ง Apache เริ่มต้นมาพร้อมกับ mod_status ที่เปิดใช้งาน หากไม่เป็นเช่นนั้น ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานในไฟล์การกำหนดค่า Apache

[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf

ค้นหาคำว่า “mod_status ” หรือเลื่อนลงไปเรื่อยๆ จนกระทั่งพบบรรทัดที่มี

#LoadModule status_module modules/mod_status.so

หากคุณเห็นอักขระ '#' ที่จุดเริ่มต้นของ "LoadModule" นั่นหมายความว่า mod_status ถูกปิดใช้งาน ลบ '#' เพื่อเปิดใช้งาน mod_status

LoadModule status_module modules/mod_status.so

กำหนดค่า mod_status

ตอนนี้ให้ค้นหาคำว่า “ตำแหน่ง ” อีกครั้ง หรือเลื่อนลงจนกว่าคุณจะพบส่วนสำหรับ mod_status ซึ่งควรมีลักษณะดังนี้

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>

ในส่วนด้านบน ให้ยกเลิกหมายเหตุบรรทัดสำหรับ คำสั่งตำแหน่ง, SetHandler, และ ข้อจำกัดไดเรกทอรี ตามความต้องการของคุณ ตัวอย่างเช่น ฉันทำให้มันง่ายด้วย อนุญาตการสั่งซื้อ ปฏิเสธ และ อนุญาตสำหรับทุกคน

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

หมายเหตุ: การกำหนดค่าข้างต้นเป็นการกำหนดค่าเริ่มต้นสำหรับเว็บไซต์ Apache เริ่มต้น (เว็บไซต์เดียว) หากคุณสร้าง Apache Virtual Host หนึ่งรายการขึ้นไป การกำหนดค่าข้างต้นจะไม่ทำงาน

โดยพื้นฐานแล้ว คุณจะต้องกำหนดการกำหนดค่าเดียวกันสำหรับแต่ละโฮสต์เสมือนสำหรับโดเมนใด ๆ ที่คุณได้กำหนดค่าใน Apache ตัวอย่างเช่น การกำหนดค่าโฮสต์เสมือนสำหรับ mod_status จะมีลักษณะเช่นนี้

<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>

เปิดใช้งาน ExtendedStatus

การตั้งค่า “ExtensedStatus” จะเพิ่มข้อมูลเพิ่มเติมลงในหน้าสถิติ เช่น การใช้งาน CPU, คำขอต่อวินาที, ปริมาณการใช้งานทั้งหมด ฯลฯ หากต้องการเปิดใช้งาน ให้แก้ไขไฟล์ httpd.conf เดิมและค้นหาคำว่า “ขยาย ” และยกเลิกการใส่เครื่องหมายข้อคิดเห็นบรรทัดและตั้งค่าสถานะ “เปิด< ” สำหรับคำสั่ง ExtensedStatus

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

รีสตาร์ทอาปาเช่

ตอนนี้ตรวจสอบให้แน่ใจว่าคุณได้เปิดใช้งานและกำหนดค่าหน้าสถานะเซิร์ฟเวอร์ Apache อย่างถูกต้อง คุณยังสามารถตรวจสอบข้อผิดพลาดในการกำหนดค่า httpd.conf ได้โดยใช้คำสั่งต่อไปนี้

[root@tecmint ~]# httpd -t

Syntax OK

เมื่อคุณได้รับไวยากรณ์ ตกลง คุณสามารถเริ่มบริการ httpd ใหม่ได้

[root@tecmint ~]# service httpd restart
OR
[root@tecmint ~]# systemctl restart httpd
Stopping httpd:                                          [  OK  ]
Starting httpd:                                          [  OK  ]

เข้าถึงหน้า mod_status

หน้าสถานะ Apache จะสามารถเข้าถึงได้ผ่านชื่อโดเมนของคุณที่มี “/server-status” ที่ URL ต่อไปนี้

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

คุณจะเห็นสิ่งที่คล้ายกับหน้าต่อไปนี้โดยเปิดใช้งาน ExtensedStatus

ในภาพรวมข้างต้น คุณจะเห็นว่าอินเทอร์เฟซ HTML ซึ่งแสดงข้อมูลทั้งหมดเกี่ยวกับ เวลาทำงานของเซิร์ฟเวอร์, รหัสกระบวนการ พร้อมด้วย ตามลำดับ ลูกค้า หน้าที่พวกเขากำลังพยายามเข้าถึง

อีกทั้งยังแสดงความหมายและการใช้งานของตัวย่อทั้งหมดที่ใช้แสดงสถานะซึ่งช่วยให้เราเข้าใจสถานการณ์ได้ดีขึ้น

คุณยังสามารถรีเฟรชหน้าเว็บได้ทุก ๆ วินาที (เช่น 5 วินาที) เพื่อดูสถิติที่อัปเดต หากต้องการตั้งค่าการรีเฟรชอัตโนมัติ โปรดเพิ่ม “?refresh=N” ที่ส่วนท้ายของ URL โดยที่ N สามารถแทนที่ด้วยจำนวนวินาทีที่คุณต้องการให้เพจของคุณรีเฟรช

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

มุมมองหน้าสถานะบรรทัดคำสั่ง

คุณยังสามารถดูหน้าสถานะ Apache ได้จากอินเทอร์เฟซบรรทัดคำสั่งโดยใช้เบราว์เซอร์บรรทัดคำสั่งพิเศษที่เรียกว่าลิงก์หรือ lynx คุณสามารถติดตั้งได้โดยใช้ยูทิลิตี้ตัวจัดการแพ็คเกจเริ่มต้นชื่อ yum ดังที่แสดงด้านล่าง

yum install links

OR

yum install lynx

เมื่อคุณติดตั้งแล้ว คุณจะได้รับสถิติเดียวกันบนเทอร์มินัลของคุณโดยใช้คำสั่งต่อไปนี้

[root@tecmint ~]# links http://serveripaddress/server-status
OR
[root@tecmint ~]# lynx http://serveripaddress/server-status
OR
[root@tecmint ~]#  /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

บทสรุป

โมดูล mod_status ของ Apache เป็นเครื่องมือตรวจสอบที่มีประโยชน์มากสำหรับการตรวจสอบประสิทธิภาพของกิจกรรมของเว็บเซิร์ฟเวอร์และสามารถเน้นปัญหาได้ด้วยตนเอง สำหรับข้อมูลเพิ่มเติม โปรดอ่านหน้าสถานะที่สามารถช่วยให้คุณเป็นผู้ดูแลระบบเว็บเซิร์ฟเวอร์ที่ประสบความสำเร็จมากขึ้น

  1. หน้าแรกของ Apache mod_status

นั่นคือทั้งหมดสำหรับ mod_status ในตอนนี้ เราจะนำเสนอกลเม็ดและเคล็ดลับเพิ่มเติมเกี่ยวกับ Apache ในบทช่วยสอนต่อๆ ไป จนกว่าจะถึงช่วง Geeky และติดตาม linux-console.net และอย่าลืมเพิ่มความคิดเห็นอันมีค่าของคุณ