วิธีการติดตั้ง Memcached บน Ubuntu 20.04 LTS

เพิ่มประสิทธิภาพฐานข้อมูลของคุณโดยใช้เซิร์ฟเวอร์ Memcached กับแอป PHP และ Python

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

Memcached กำหนดตัวเองว่ามีประสิทธิภาพสูง ระบบการแคชอ็อบเจ็กต์หน่วยความจำแบบกระจาย ซึ่งมีลักษณะทั่วไป แต่เดิมมีจุดประสงค์เพื่อใช้ในการเร่งความเร็วเว็บแอปพลิเคชันแบบไดนามิกโดยบรรเทาการโหลดฐานข้อมูล พัฒนาโดย Brad Fitzpatrick สำหรับเว็บไซต์ LiveJournal ในปี 2546

ในบทความนี้ เราจะมาดูวิธีการติดตั้งและกำหนดค่า Memcached ใน Ubuntu 20.04 และดูไคลเอนต์เฉพาะภาษาของมัน

ข้อกำหนดเบื้องต้น

ระบบที่ติดตั้งกับ Ubuntu 20.04 โดยมีผู้ใช้ที่มีสิทธิ์ของผู้ดูแลระบบ นั่นคือ a sudo ผู้ใช้

การติดตั้ง

Memcached มีอยู่ในที่เก็บ Ubuntu 20.04 อย่างเป็นทางการ นอกเหนือจาก Memcached เราจะติดตั้งเครื่องมือ CLI ที่รู้จักกันในชื่อ libmemcached-tools เพื่อจัดการ Memcached เพียงเรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งทั้ง

sudo apt ติดตั้ง memcached libmemcached-tools

ตรวจสอบการติดตั้ง

หลังจากการติดตั้งเสร็จสิ้น Memcached daemon จะเริ่มทำงานในเบื้องหลังด้วยตัวเอง ในการตรวจสอบการติดตั้ง เราสามารถใช้คำสั่งจาก libmemcached-tools แพ็คเกจเพื่อรับสถิติเซิร์ฟเวอร์ Memcached ไม่ว่าจะวิ่ง

memcstat --เซิร์ฟเวอร์ localhost

หรือ

memcstat --เซิร์ฟเวอร์ 127.0.0.1

ดิ memcstat คำสั่งแสดงสถิติการทำงานของเซิร์ฟเวอร์ คำสั่งดังกล่าวจะส่งผลให้ผลลัพธ์ที่แสดงด้านล่าง

สถิติต่างๆเช่น เวลาทำงาน ในไม่กี่วินาที รุ่น และ pid จะแสดงเป็นเอาต์พุต อย่างไรก็ตาม หากไม่มีการแสดงผล เป็นไปได้ว่า Memcached ไม่ทำงาน ดังนั้น คุณต้องเรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มเซิร์ฟเวอร์ Memcached

sudo systemctl เริ่ม memcached

ในการเรียกใช้เซิร์ฟเวอร์ Memcached เมื่อเริ่มต้นระบบ ให้ใช้คำสั่งต่อไปนี้

sudo systemctl เปิดใช้งาน memcached

การกำหนดค่า Memcached

หากคุณติดตั้ง memcached ไว้บนเซิร์ฟเวอร์ของเว็บไซต์ คุณไม่จำเป็นต้องเปลี่ยนไฟล์การกำหนดค่า เนื่องจาก memcached นั้นได้รับการกำหนดค่าไว้ล่วงหน้าเพื่อทำงานกับ localhost

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

การตั้งค่าการเข้าถึงระยะไกลสำหรับเซิร์ฟเวอร์ Memcached

Memcached มีความเสี่ยงต่อการโจมตี DDoS (Distributed Denial of Service) กฎไฟร์วอลล์ที่ไม่ถูกต้องและพอร์ต UDP ที่เปิดอยู่จะทำให้เซิร์ฟเวอร์ของคุณเปิดกว้างและเสี่ยงต่อการโจมตี DDoS

เพื่อลดความเสี่ยง เราสามารถปิดใช้งานโปรโตคอล UDP สำหรับ Memcached ในการกำหนดค่าหรือตั้งค่าไฟร์วอลล์เพื่ออนุญาตเซิร์ฟเวอร์ที่เชื่อถือได้เท่านั้น

แกะกล่อง Ubuntu โดยไม่มีพอร์ต TCP หรือ UDP เปิดอยู่ นอกจากนี้ ไฟร์วอลล์ daemon ufw (ไฟร์วอลล์ที่ไม่ซับซ้อน) ไม่ได้เปิดใช้งานตามค่าเริ่มต้น

เราจะเปิดใช้งานไฟร์วอลล์และตั้งค่าการกำหนดค่า Memcached เพื่อให้เราสามารถบรรเทาช่องโหว่ DDoS ได้

ขั้นแรกให้เปิดใช้งาน ufw โดยรันคำสั่งต่อไปนี้:

sudo systemctl เปิดใช้งาน ufw

จากนั้นเริ่ม ufw บริการโดยใช้คำสั่งด้านล่าง:

sudo systemctl start ufw

เมื่อไฟร์วอลล์ทำงาน เราสามารถตั้งค่ากฎไฟร์วอลล์ได้ในที่สุด ประการแรก เปิดใช้งานพอร์ต 22 เพื่ออนุญาตการเชื่อมต่อ SSH จำเป็นต้องใช้ SSH เพื่อเข้าถึงเซิร์ฟเวอร์ที่ต้องการจากระยะไกล

sudo ufw อนุญาต 22

ประการที่สอง คุณจำเป็นต้องทราบที่อยู่ IP ของไคลเอ็นต์ นั่นคือโฮสต์เว็บแอปพลิเคชันและที่อยู่ IP ของเซิร์ฟเวอร์ นั่นคือเซิร์ฟเวอร์ Memcached

สำหรับกรณีนี้ ให้เราถือว่า IP ของไคลเอ็นต์เป็น 192.168.0.4 และ IP ของเซิร์ฟเวอร์ Memcached เป็น 192.168.0.5 บนเครือข่ายท้องถิ่น

ดังนั้นเพื่ออนุญาตการเข้าถึงเซิร์ฟเวอร์ memcached จากระยะไกลไปยังเซิร์ฟเวอร์ไคลเอนต์ ให้รัน:

sudo ufw อนุญาตจาก 192.168.0.4 ไปยังพอร์ตใดก็ได้ 11211

แทนที่ 192.168.0.4 ด้วยที่อยู่ IP ของไคลเอ็นต์ที่คุณต้องการ

ถัดไป แก้ไขไฟล์การกำหนดค่า Memcached ที่อยู่ที่ /etc/memcached.conf โดยการวิ่ง นาโน สั่งการ.

sudo nano /etc/memcached.conf

ดิ memcached.conf ไฟล์การกำหนดค่าจะเปิดขึ้นด้วยตัวแก้ไข nano ให้มองหา -l 127.0.0.1 บรรทัดในการกำหนดค่าและแทนที่ 127.0.0.1 ด้วย IP เซิร์ฟเวอร์ Memcached ของคุณหรือในกรณีนี้ 192.168.0.5.

หลังจากเปลี่ยน press ctrl+o เพื่อเขียนไปยังไฟล์กำหนดค่าและกด Enter ให้กด ctrl+x เพื่อออกจากนาโน

รีสตาร์ทเซิร์ฟเวอร์ Memcached และ ufw ไฟร์วอลล์โดยใช้คำสั่งด้านล่าง

sudo systemctl รีสตาร์ท memcached ufw

ตอนนี้เราเสร็จสิ้นการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ Memcached บน Ubuntu 20.04 แล้ว

กำลังเชื่อมต่อกับเซิร์ฟเวอร์ Memcached

ในการใช้เซิร์ฟเวอร์ Memcached คุณจะต้องติดตั้งไคลเอนต์เฉพาะภาษา โชคดีที่ Memcached รองรับภาษายอดนิยมมากมาย

เรามาดูวิธีการติดตั้งกัน php และ หลาม ลูกค้าสำหรับ Memcached

PHP เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ที่ได้รับความนิยมมากที่สุด และส่วนใหญ่จะใช้ Memcached โดยนักพัฒนาเว็บเพื่อปรับปรุงประสิทธิภาพเซิร์ฟเวอร์ของเว็บแอปที่ขับเคลื่อนโดย PHP

ในการติดตั้งการสนับสนุน memcached ใน php วิ่ง:

sudo apt ติดตั้ง php-memcached

Python ก็มีหลายไลบรารีที่สามารถทำงานและโต้ตอบกับเซิร์ฟเวอร์ Memcached เช่น pymemcached หรือ python-memcached.

คุณสามารถติดตั้ง memcached สำหรับ python ได้โดยการรันคำสั่ง pip ต่อไปนี้:

pip ติดตั้ง pymemcache
pip ติดตั้ง python-memcached

โดยสรุป เราได้ดูการติดตั้ง การกำหนดค่า และไคลเอนต์เฉพาะภาษาบางตัวของ Memcached ใน Ubuntu 20.04

หากต้องการทราบการใช้ Memcached ขั้นสูงและละเอียดยิ่งขึ้นให้ดูที่ Memcached Wiki