ติดตั้ง memcached centos การติดตั้งและกำหนดค่า Memcache บน Centos
ในบันทึกนี้ฉันจะไม่อาศัยคำถามว่ามันคืออะไร หากเกิดคำถามว่า "จะใส่อย่างไร" คุณก็จะได้คำตอบว่า "มันคืออะไร" (อย่างน้อยก็ประมาณหนึ่ง)! 🙂
แต่ใน ในแง่ทั่วไป memcache เป็นโปรแกรมพิเศษที่ให้คุณแคชข้อมูล (เช่น ผลลัพธ์ของการสืบค้น SQL, ผลลัพธ์ที่เสร็จสิ้นของสคริปต์, รูปภาพ = โดยทั่วไป, ออบเจกต์ใดๆ ที่จำเป็นสำหรับการทำงาน) ลงใน RAM ของเซิร์ฟเวอร์ หน่วยความจำนี้เร็วกว่าฮาร์ดไดรฟ์หลายร้อย (บางครั้งหลายพัน) ดังนั้นการจัดเก็บข้อมูลในนั้นแม้ว่าจะมีราคาแพงกว่า แต่ก็มีประสิทธิภาพมากกว่าหลายเท่าในแง่ของความเร็ว ซึ่งมีผลดีอย่างมากต่อโหลดบนเซิร์ฟเวอร์และบน ความเร็วของสคริปต์ไซต์
วิธีติดตั้ง memcache บนเว็บเซิร์ฟเวอร์
ติดตั้งเซิร์ฟเวอร์ memcached เอง
Yum -y ติดตั้ง memcached
แก้ไขการกำหนดค่าของเขาเพื่อให้เขาฟังเซิร์ฟเวอร์เท่านั้นและไม่ประมวลผลคำขอจากภายนอก (นี่คือคำถามว่า กึ๋น, และความปลอดภัย - ทำไมบางคนถึงเห็นสิ่งที่เก็บไว้ในความทรงจำของคุณที่นั่น?)
ในการทำเช่นนี้ ให้เปิดไฟล์เพื่อแก้ไข /etc/sysconfig/memcached
และแทนที่บรรทัด OPTIONS ด้วย
ตัวเลือก = "-l 127.0.0.1"
ตามค่าเริ่มต้น ในการกำหนดค่าเดียวกันสำหรับการดำเนินการ memcache มีการระบุว่ามีการจัดสรร RAM ขนาด 64 MB สำหรับการจัดเก็บข้อมูล หากคุณต้องการตั้งค่าเพิ่มเติม เพียงแค่เปลี่ยนค่าในบรรทัด
ขนาดแคช = "64"
เพื่อสิ่งที่คุณต้องการ
แต่จำไว้โดยที่ไม่จำเป็นต้องจัดสรรหน่วยความจำมากเกินไป โดยเฉพาะอย่างยิ่งหากไม่ได้ใช้งานทั้งหมดในภายหลัง ก็เป็นอันตรายเช่นกัน! (อย่างน้อยก็ด้วยเหตุผลที่ว่า RAM เป็นทรัพยากรเว็บเซิร์ฟเวอร์ที่ค่อนข้างมีค่าซึ่งมักจะจบลงในเวลาที่ไม่เหมาะสมที่สุด)
ตอนนี้เหลือ เริ่ม memcache daemonและเพิ่มไปที่การเริ่มต้น (มิฉะนั้น เมื่อคุณรีสตาร์ทเซิร์ฟเวอร์ทั้งหมด คุณจะต้องเริ่มต้นด้วยตนเอง):
/etc/init.d/memcached เริ่ม chkconfig memcached บน
ขั้นตอนสุดท้ายคือการติดตั้งโมดูล memcache:
Yum -y ติดตั้ง php-pecl-memcache
....และรีสตาร์ท apache:
/etc/init.d/httpd รีสตาร์ท
ในตอนท้าย นี่คือวิธีที่คุณสามารถตรวจสอบว่า memcache กำลังฟังพอร์ต 11211:
ทุกอย่าง. ตอนนี้ก็เพียงพอแล้วที่จะระบุในการตั้งค่าแคชของไซต์
ที่อยู่เซิฟเวอร์: 127.0.0.1 (หรือ localhost ก็ได้เหมือนกัน)
ท่าเรือ: 11211
และเพลิดเพลินกับข้อดีทั้งหมดของวิธีการแคชนี้
คำถามที่พบบ่อย
-
การตั้งค่าสิทธิ์สำหรับไฟล์เดียว:
chmod 644 /path/to/file/filename.ext โดยที่- /path/to/file/ - พาธไปยังไฟล์จากรูท
- filename.ext - ชื่อไฟล์
วิธีกำหนดสิทธิ์ให้กับไฟล์ทั้งหมด (รวมถึงไฟล์ในโฟลเดอร์ย่อย)
ไปที่โฟลเดอร์ที่มีไฟล์อยู่และเรียกใช้: find . - พิมพ์ f -exec chmod 644 () \; - 1) ไคลเอนต์ SSH
- 2) ข้อมูลสำหรับการเชื่อมต่อกับเซิร์ฟเวอร์ (ที่อยู่ IP ชื่อผู้ใช้และรหัสผ่าน) - สามารถรับได้จากผู้ให้บริการที่ให้เซิร์ฟเวอร์แก่คุณ
วิธีที่ง่ายที่สุดในการลบเนื้อหาทั้งหมดของไฟล์ (ล้าง) คือการคัดลอก "เนื้อหา" ของไฟล์ /dev/null ลงไป (/dev/null ใน *nix เป็นคำพ้องความหมายสำหรับความว่างเปล่า ทุกสิ่งที่เป็น คัดลอกมาก็หายไปทุกอันที่คัดลอกมาถือเป็นโมฆะ)
คุณสามารถทำได้โดยทำดังนี้
Cp /dev/nullfile.ext
โดยที่ file.ext คือชื่อของไฟล์ที่ถูกล้าง
วิธีที่ง่ายที่สุด- เรียกใช้คำสั่ง:
ค้นหา /path/to/folder | สุขา -l
โดยที่ /path/to/folder คือพาธไปยังโฟลเดอร์ที่ตรวจสอบจากรูทของไดรฟ์
หา. -ความลึกขั้นต่ำ 2 | awk -F/ "( พิมพ์ $2"/" )" | จัดเรียง | ยูนิค -c | เรียง-n
แต่บ่อยครั้งที่ไม่ต้องการรายละเอียด - ก็เพียงพอที่จะเห็น 2-3 โฟลเดอร์ที่มีองค์ประกอบมากที่สุด ในการทำเช่นนี้ ในตอนท้ายของคำสั่งเดียวกัน ให้เพิ่ม | หาง-3("3" ในนั้นคือจำนวนรายการที่จะแสดง):
หา. -ความลึกขั้นต่ำ 2 | awk -F/ "( พิมพ์ $2"/" )" | จัดเรียง | ยูนิค -c | sort-n | หาง-3
เมื่อปรากฎว่าผู้ใช้จำนวนมากไม่ทราบวิธีเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน shh (เข้าถึงคอนโซล) เพื่อใช้งานต่อไป ในบันทึกนี้ ฉันจะพยายามแก้ไขช่องว่างนี้ในความรู้! :) ในการเชื่อมต่อผ่าน SSH กับเซิร์ฟเวอร์ระยะไกล คุณไม่ต้องการอะไรมากมาย:
เริ่มจากข้อแรกกันเลย
การเชื่อมต่อผ่าน SSH จาก Windows
เพื่อทุกสิ่ง รุ่นของหน้าต่างสคีมาเหมือนกัน ก่อนอื่นคุณต้องดาวน์โหลดโปรแกรมไคลเอนต์พิเศษชื่อ putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html ( คลิกที่ putty-0.63-installer.exe) ติดตั้งและป้อนที่อยู่เซิร์ฟเวอร์ในช่องชื่อโฮสต์ (ในช่องพอร์ตควรมีค่าเป็น 22):
เชื่อมต่อผ่าน ssh กับ Putty
ยืนยันว่าโหนดนั้นเชื่อถือได้
ป้อนชื่อผู้ใช้
หลังจากนั้นให้ป้อนรหัสผ่าน เพียงเท่านี้ - คุณเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน ssh!
ความสนใจ!เมื่อป้อนรหัสผ่าน ด้วยเหตุผลด้านความปลอดภัย แม้แต่ "เครื่องหมายดอกจัน" จะไม่แสดง! นี่คือสิ่งที่ควรเป็น - เพียงพิมพ์รหัสผ่านแล้วคลิก " เข้า"
การเชื่อมต่อผ่าน SSH จาก Linux
หากติดตั้ง Linux เวอร์ชันใด ๆ บนคอมพิวเตอร์ที่ใช้งานได้ทุกอย่างก็ง่ายมาก - เปิดเทอร์มินัลแล้วป้อนคำสั่งเช่น
จุ๊ๆ [ป้องกันอีเมล]
และใส่รหัสผ่านที่ไหน, ชื่อผู้ใช้ - ชื่อผู้ใช้. 111.222.333.444 - ที่อยู่ IP ของเซิร์ฟเวอร์ หากคุณกำลังเชื่อมต่อเป็นครั้งแรก คุณจะต้องยืนยันความตั้งใจของคุณด้วยการพิมพ์คำว่า " ใช่" และกด " เข้า".
Memcache เป็นระบบประสิทธิภาพสูงสำหรับการจัดเก็บข้อมูลใน RAM ของเซิร์ฟเวอร์ ซึ่งโดยปกติจะใช้ในโครงการที่มีโหลดสูง ขอแนะนำให้ใช้ Memcached ในกรณีที่โหลดเพิ่มขึ้นใน MySQL และระบบย่อยของดิสก์ ประสิทธิภาพการแคชสูงทำได้เนื่องจากข้อมูลทั้งหมดถูกเก็บไว้ใน RAM และการเข้าถึงข้อมูลเหล่านี้ไม่จำเป็นต้องเข้าถึงระบบย่อยของดิสก์ ในการโฮสต์ Gino นั้น Memcached จะถูกปรับใช้บนเซิร์ฟเวอร์แยกต่างหากที่เชื่อมต่อกับเซิร์ฟเวอร์ของไซต์ผู้ใช้โดยเครือข่ายกิกะบิต ทั้งหมดนี้ให้การเข้าถึงแคชความเร็วสูงโดยไม่ต้องโหลดทรัพยากรของเซิร์ฟเวอร์หลัก
ติดตั้ง Memcached
yum ทำความสะอาดการอัปเดต yum -y ทั้งหมดติดตั้ง Memcached และแพ็คเกจที่เกี่ยวข้อง
Yum -y ติดตั้ง memcached
การตั้งค่า Memcached
แก้ไขไฟล์ /etc/sysconfig/memcached:
PORT="11211" USER="memcached" MAXCONN="2048" CACHESIZE="4096" OPTIONS="-l 127.0.0.1"
บันทึกการตั้งค่าและรีสตาร์ท Memcached
Systemctl รีสตาร์ท memcached
การกำหนดค่า autoload Memcached
กำหนดค่า Memcached เพื่อเริ่มต้นเมื่อบูตSystemctl เริ่ม memcached
เพิ่มไปยังโหลดอัตโนมัติ
Systemctl เปิดใช้งาน memcached
ตรวจสอบสถานะปัจจุบัน
สถานะ Systemctl memcached
เพื่อหยุดการใช้งาน
systemctl หยุดเมมแคช
การเพิ่มลิงค์ PHP
ติดตั้ง php-pecl-memcached
Yum -y ติดตั้ง php-pecl-memcached
รีสตาร์ท apache
systemctl รีสตาร์ท httpd
เพิ่มเร็ว ๆ นี้
- ขนาดโฟลเดอร์และไดรฟ์ใน Linux คำสั่ง df และ du
หากต้องการดูพื้นที่ว่างและใช้บนพาร์ติชั่นดิสก์ใน Linux คุณสามารถใช้คำสั่ง df คำสั่ง du ใช้เพื่อดูขนาดของโฟลเดอร์บนดิสก์
- วิธีอัปเกรด ImageMagick จาก 6.7 เป็น 7.0 บน Centos 7
ในคู่มือนี้ เราจะแสดงวิธีอัปเกรด ImageMagick จาก 6.7 เป็น 7.0 บน Centos 7
- การแสดงออกปกติ การตรวจสอบหมายเลขโทรศัพท์
วิธีเช็คเลข โทรศัพท์มือถือ? การตรวจสอบความถูกต้องของหมายเลขโทรศัพท์ที่กรอกนั้นไม่ใช่เรื่องยากแต่ งานสำคัญ. หากผู้ใช้ป้อนหมายเลขไม่ถูกต้อง ข้อความ SMS จะไปไม่ถึงเขา
M emcache เป็นโครงสร้างพื้นฐานที่สำคัญสำหรับแอปพลิเคชันจำนวนมาก ฐานข้อมูล คิว และบริการระยะไกลมักเป็นคอขวดของคำขอเว็บ แต่ในหลายกรณี ข้อมูลที่มีอยู่จะไม่เปลี่ยนแปลง Memcache เป็น daemon มาตรฐานที่สามารถแคชค่าต่างๆ ได้ตามอำเภอใจ และเร่งความเร็วทุกอย่างตั้งแต่การสืบค้น MySQL ไปจนถึงการสืบค้น REST
เริ่มต้นใช้งาน Memcache
เพื่อให้คำแนะนำนี้สมบูรณ์ คุณจะต้องมีสิ่งต่อไปนี้:
- 1 โหนด (Cloud หรือ ) พร้อม CentOS 7 และติดตั้งสแต็ก
เมื่อดำเนินการเสร็จแล้ว สแต็ก LAMP จะถูกขยายขนาดด้วย Memcache และคุณสามารถเริ่มรวมเข้ากับไซต์และแอปพลิเคชันที่มีอยู่ของคุณได้
การจัดการ
ก่อนอื่นเราจะติดตั้งแพ็คเกจ เมมแคช .
Yum -y ติดตั้ง memcached
ติดตั้งแพ็คเกจแล้ว แต่ควรเปิดใช้งานด้วย เราต้องกำหนดค่าให้เริ่มการบูทระบบด้วย
systemctl เริ่ม memcached.service systemctl เปิดใช้งาน memcached.service
ตอนนี้ควรกำหนดค่า Memcached เพื่อการใช้งานที่เหมาะสมที่สุด เราจะดูแลเรื่องนั้น
นาโน /etc/sysconfig/memcached
คุณต้องการจัดสรรหน่วยความจำสำหรับ Memcached หรือไม่ สิ่งนี้ทำได้โดยการเปลี่ยนค่าของ CACHESIZE เป็นจำนวน RAM ที่ต้องการสำหรับแคชโดยเฉพาะ
พอร์ต="11211"
USER="เมมแคช"
MAXCONN="1024"
ขนาดแคช = "64"
ตัวเลือก = ""
เนื่องจากคุณเพิ่งเปลี่ยนการกำหนดค่า คุณต้องรีสตาร์ท Memcached เพื่อให้ค่าใหม่มีผล
Systemctl รีสตาร์ท memcached.service
จำเป็นต้องมีส่วนขยายเพื่อใช้ Memcached จาก PHP เราจะติดตั้งตามตัวอย่างต่อไปนี้
Yum -y ติดตั้ง php-pecl-memcache
เมื่อ PHP ได้รับการอัปเดตแล้ว คุณต้องรีสตาร์ท Apache นอกจากนี้ รีสตาร์ท Memcached
รีสตาร์ท systemctl httpd.service systemctl รีสตาร์ท memcached.service
ตรวจสอบการโหลดโมดูล Memcached กัน
php -m | grep memcache เมมแคช
เพื่อตรวจสอบสถานะของโมดูลเพิ่มเติม เราจะสร้าง หน้าข้อมูลพี.เอช.พี. ฟังก์ชันนี้ส่งคืนข้อมูลการกำหนดค่า สิ่งแวดล้อมพี.เอช.พี. หากมีการกำหนดค่า Memcached อย่างถูกต้อง ก็จะมี รายละเอียดข้อมูลเกี่ยวกับการสนับสนุน Memcached
นาโน /var/www/html/index.php
ในที่สุดเราก็ตรวจสอบสถานะของโมดูล เมมแคช ใน PHP เยี่ยมชมเพจที่คุณเพิ่งสร้างขึ้นได้ที่: http://your_main_ip/index.php
บทสรุป
ระบบแคชวัตถุหน่วยความจำ เช่น Memcached สามารถเพิ่มประสิทธิภาพฐานข้อมูลโดยจัดเก็บบันทึกที่ร้องขอบ่อยหรือเรียกล่าสุดไว้ในหน่วยความจำเป็นการชั่วคราว ดังนั้นจึงลดจำนวนการสืบค้นฐานข้อมูลโดยตรง
เนื่องจากระบบต่างๆ เช่น Memcached เปิดเผยเซิร์ฟเวอร์ต่อการโจมตี DoS หากกำหนดค่าไม่ถูกต้อง สิ่งสำคัญคือต้องรักษาความปลอดภัยเซิร์ฟเวอร์ Memcached ไว้ล่วงหน้า ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีรักษาความปลอดภัยของเซิร์ฟเวอร์ Memcached โดยการผูกการติดตั้งกับอินเทอร์เฟซเครือข่ายท้องถิ่นหรือส่วนตัว และสร้างผู้ใช้ที่ได้รับอนุญาตสำหรับอินสแตนซ์ Memcached
ความต้องการ
ในการทำงานคุณจะต้อง:
- เซิร์ฟเวอร์ CentOS 7 กำหนดค่าด้วย .
- FirewallD กำหนดค่าตามคู่มือ
การติดตั้ง Memcached จากที่เก็บอย่างเป็นทางการ
หากยังไม่ได้ติดตั้ง Memcached บนเซิร์ฟเวอร์ คุณสามารถติดตั้งได้จากที่เก็บ CentOS อย่างเป็นทางการ ขั้นแรก อัปเดตดัชนีแพ็กเกจในเครื่องของคุณ:
จากนั้นติดตั้งแพ็คเกจอย่างเป็นทางการ:
sudo yum ติดตั้ง memcached
คุณยังสามารถติดตั้ง libmemcached-tools ซึ่งเป็นไลบรารีที่มีเครื่องมือต่างๆ สำหรับการทำงานกับเซิร์ฟเวอร์ Memcached:
sudo yum ติดตั้ง libmemcached
ตอนนี้ Memcached ได้รับการติดตั้งเป็นบริการ และเซิร์ฟเวอร์มีเครื่องมือที่จะช่วยให้คุณตรวจสอบการเชื่อมต่อได้ คุณสามารถไปที่การกำหนดค่า
การป้องกัน Memcached
เพื่อให้แน่ใจว่าอินสแตนซ์ Memcached กำลังฟังบนอินเทอร์เฟซภายในเครื่อง 127.0.0.1 คุณต้องตรวจสอบการตั้งค่าเริ่มต้นใน ไฟล์การกำหนดค่า/etc/sysconfig/memcached และปิดใช้งานตัวฟัง UDP การกระทำเหล่านี้จะปกป้องเซิร์ฟเวอร์จากการโจมตีโดยปฏิเสธบริการ
เปิดไฟล์ /etc/sysconfig/memcached:
ค้นหาตัวแปร OPTIONS:
. . .
ตัวเลือก = ""
การเชื่อมต่อกับอินเทอร์เฟซเครือข่ายท้องถิ่นจะจำกัดการรับส่งข้อมูลไปยังไคลเอ็นต์ในเครื่องเดียว เมื่อต้องการทำเช่นนี้ ให้เพิ่ม -l 127.0.0.1 ให้กับตัวแปร OPTIONS ข้อจำกัดนี้อาจเข้มงวดเกินไปสำหรับสภาพแวดล้อมบางอย่าง แต่เป็นการเริ่มต้นที่ดีในการตั้งค่าความปลอดภัย
เนื่องจาก UDP ถูกใช้อย่างมีประสิทธิภาพในการโจมตี dos มากกว่า TCP คุณจึงสามารถปิดใช้งานตัวฟัง UDP ได้ ในการทำเช่นนี้ ให้เพิ่มตัวเลือก -U 0 ให้กับตัวแปร OPTIONS ดังนั้น ไฟล์ควรมีลักษณะดังนี้:
พอร์ต="11211"
USER="เมมแคช"
MAXCONN="1024"
ขนาดแคช = "64"
OPTIONS="-l 127.0.0.1 -U 0"
บันทึกและปิดไฟล์
ตรวจสอบให้แน่ใจว่า Memcached ถูกผูกไว้กับอินเทอร์เฟซภายในเครื่องและรับฟังเฉพาะการเชื่อมต่อ TCP:
sudo netstat -plunt
. . .
tcp 0 0 127.0.0.1:11211 0.0.0.0:* ฟัง 2383/memcached
. . .
นี่เป็นการยืนยันว่า memcached เชื่อมโยงกับ 127.0.0.1 และใช้ TCP เท่านั้น
การเพิ่มผู้ใช้ที่ได้รับอนุญาต
หากต้องการเพิ่มผู้ใช้ที่ได้รับอนุญาตใน Memcached คุณสามารถใช้ Simple Authentication and Security Layer (SASL) ซึ่งเป็นเฟรมเวิร์กที่แยกขั้นตอนการพิสูจน์ตัวตนออกจากโปรโตคอลของแอปพลิเคชัน เปิดใช้งาน SASL ในไฟล์กำหนดค่า Memcached แล้วเพิ่มผู้ใช้ด้วยข้อมูลรับรองการตรวจสอบสิทธิ์
รองรับ SASL
ขั้นตอนแรกคือการตรวจสอบการเชื่อมต่อของอินสแตนซ์ Memcached โดยใช้คำสั่ง memcstat สิ่งนี้จะช่วยยืนยันว่า SASL และการรับรองความถูกต้องผู้ใช้เปิดใช้งานหลังจากทำการเปลี่ยนแปลงการกำหนดค่าแล้ว
เพื่อให้แน่ใจว่า Memcached เปิดใช้งานอยู่ ให้พิมพ์ดังต่อไปนี้:
memstat --servers="127.0.0.1"
เซิร์ฟเวอร์: 127.0.0.1 (11211)
พิมพ์: 3831
เวลาทำงาน: 9
เวลา: 1520028517
รุ่น: 1.4.25
. . .
ตอนนี้คุณสามารถเปิดใช้งาน SASL ก่อนอื่น คุณต้องเพิ่มตัวเลือก -S ให้กับตัวแปร OPTIONS ใน /etc/sysconfig/memcached.conf เปิดไฟล์อีกครั้ง:
sudo vi /etc/sysconfig/memcached
เพิ่มตัวเลือก -S และ -vv ให้กับตัวแปร OPTIONS ส่วนหลังจะให้เอาต์พุตอย่างละเอียดใน /var/log/memcached ซึ่งจะมีประโยชน์เมื่อแก้ไขปัญหา
บรรทัดควรมีลักษณะดังนี้:
. . .
OPTIONS="-l 127.0.0.1 -U 0 -S -vv"
บันทึกและปิดไฟล์
เริ่มบริการ Memcached ใหม่:
sudo systemctl รีสตาร์ท memcached
จากนั้น คุณต้องดูบันทึกเพื่อให้แน่ใจว่าเปิดใช้งานการรองรับ SASL:
sudo Journalctl -u เมมแคช
คุณควรเห็นบรรทัดต่อไปนี้ซึ่งยืนยันการรองรับ SASL:
. . .
05 มี.ค. 18:16:11 memcached-server memcached: เริ่มต้น SASL
. . .
ตอนนี้คุณสามารถทดสอบการเชื่อมต่อได้อีกครั้ง แต่หลังจากเปิดใช้งานการรองรับ SASL แล้ว คำสั่งนี้ควรส่งกลับข้อผิดพลาดโดยไม่มีการรับรองความถูกต้อง:
memstat --servers="127.0.0.1"
คำสั่งนี้ไม่แสดงผลบนหน้าจอ ป้อนข้อมูลต่อไปนี้เพื่อตรวจสอบสถานะ:
$? จะส่งคืนรหัสเอาต์พุตของคำสั่งที่เสร็จสิ้นล่าสุดเสมอ โดยทั่วไป การตอบสนองใดๆ ที่ไม่ใช่ 0 บ่งชี้ถึงความล้มเหลวของกระบวนการ ในกรณีนี้ คุณควรเห็นสถานะการออกเป็น 1 ซึ่งหมายความว่าคำสั่ง memcstat ไม่ได้ดำเนินการอย่างถูกต้อง
การสร้างผู้ใช้
ตอนนี้เราจำเป็นต้องดาวน์โหลดสองแพ็คเกจที่ให้การสนับสนุน Cyrus SASL Library และกลไกการพิสูจน์ตัวตน รวมถึงปลั๊กอินที่สนับสนุนโครงร่างการพิสูจน์ตัวตนแบบธรรมดา แพ็คเกจ cyrus-sasl-devel และ cyrus-sasl-plain ช่วยให้คุณสร้างผู้ใช้และตรวจสอบสิทธิ์ได้ ติดตั้งแพ็คเกจ:
sudo yum ติดตั้ง cyrus-sasl-devel cyrus-sasl-plain
ถัดไป คุณต้องสร้างไดเร็กทอรีและไฟล์ที่ Memcached จะตรวจสอบการตั้งค่าการกำหนดค่า SASL
sudo mkdir -p /etc/sasl2
sudo vi /etc/sasl2/memcached.conf
เพิ่มสิ่งต่อไปนี้ในไฟล์:
mech_list: ธรรมดา
log_level: 5
sasldb_path: /etc/sasl2/memcached-sasldb2
นอกจากระดับการบันทึกแล้ว คุณต้องระบุพารามิเตอร์ mech_list ที่นี่และตั้งค่าเป็นแบบธรรมดา เพื่อให้ Memcached สามารถใช้ไฟล์รหัสผ่านของตัวเองและตรวจสอบรหัสผ่านในรูปแบบ ข้อความธรรมดา. คุณต้องระบุพาธไปยังไฟล์ฐานข้อมูลผู้ใช้ด้วย ซึ่งจะสร้างขึ้นเป็นลำดับถัดไป บันทึกและปิดไฟล์
ตอนนี้เราต้องสร้างฐานข้อมูล SASL ด้วยข้อมูลรับรองผู้ใช้ ใช้คำสั่ง saslpasswd2 เพื่อสร้างรายการใหม่สำหรับผู้ใช้ในฐานข้อมูลโดยใช้ตัวเลือก -c ที่นี่ผู้ใช้เรียกว่า 8host อย่างไม่แน่นอน แต่คุณสามารถเปลี่ยนชื่อได้ การใช้อ็อพชัน -f คุณสามารถระบุพาธไปยังฐานข้อมูล (พาธที่คุณระบุในไดเร็กทอรี /etc/sasl2/memcached.conf):
sudo saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 8host
ให้สิทธิ์ผู้ใช้ memcache กับฐานข้อมูล SASL
sudo chown memcached:memcached /etc/sasl2/memcached-sasldb2
เริ่มบริการ Memcached ใหม่:
sudo systemctl รีสตาร์ท memcached
คำสั่ง memcstat จะยืนยันอีกครั้งว่ากระบวนการพิสูจน์ตัวตนทำงานหรือไม่ คราวนี้ให้รันคำสั่งด้วยข้อมูลประจำตัว:
memstat --servers="127.0.0.1" --username=8host --password=your_password
คุณจะได้รับผลลัพธ์:
เซิร์ฟเวอร์: 127.0.0.1 (11211)
พิมพ์: 3831
เวลาทำงาน: 9
เวลา: 1520028517
รุ่น: 1.4.25
. . .
ขณะนี้บริการ Memcached รองรับ SASL และการตรวจสอบผู้ใช้
การกำหนดค่าการเข้าถึงเครือข่ายส่วนตัว
ตอนนี้คุณรู้วิธีกำหนดค่า Memcached เพื่อฟังบนอินเทอร์เฟซภายในเครื่อง ซึ่งสามารถป้องกันการโจมตีแบบปฏิเสธการให้บริการและป้องกันอินเทอร์เฟซ Memcached จากการเปิดเผย บุคคลภายนอก. อย่างไรก็ตาม ในบางกรณี จำเป็นต้องอนุญาตให้เซิร์ฟเวอร์อื่นเข้าถึง Memcached ในการทำเช่นนี้ คุณสามารถผูก Memcached กับอินเทอร์เฟซเครือข่ายส่วนตัวได้
การจำกัดการเข้าถึงด้วยที่อยู่ IP ในไฟร์วอลล์
ก่อนดำเนินการกำหนดค่า ขอแนะนำให้คุณตั้งค่ากฎไฟร์วอลล์เพื่อจำกัดการเข้าถึงเซิร์ฟเวอร์ Memcached หากคุณทำเสร็จแล้วและไม่ได้วางแผนที่จะเชื่อมต่อกับ Memcached จากโฮสต์อื่น คุณไม่จำเป็นต้องเปลี่ยนกฎไฟร์วอลล์ของคุณ อินสแตนซ์ Memcached แบบสแตนด์อโลนของคุณควรรับฟังใน 127.0.0.1 ด้วยตัวแปร OPTIONS ที่คุณกำหนดไว้ก่อนหน้านี้ ดังนั้นคุณจึงไม่ต้องกังวลเกี่ยวกับทราฟฟิกขาเข้า อย่างไรก็ตาม หากคุณวางแผนที่จะอนุญาตการเข้าถึงเซิร์ฟเวอร์ Memcached ของคุณจากโฮสต์อื่น คุณจะต้องทำการเปลี่ยนแปลงการตั้งค่าไฟร์วอลล์โดยใช้คำสั่ง firewall-cmd
ขั้นแรก เพิ่มโซน Memcached เฉพาะให้กับนโยบายไฟร์วอลล์:
sudo firewall-cmd --permanent --new-zone=memcached
จากนั้นระบุพอร์ตที่จะเปิด Memcached ใช้ 11211 เป็นค่าเริ่มต้น
sudo firewall-cmd --permanent --zone=memcached --add-port=11211/tcp
จากนั้นระบุที่อยู่ IP ภายในของไคลเอ็นต์ที่ควรจะสามารถเข้าถึง Memcached ได้
sudo firewall-cmd --permanent --zone=memcached --add-source=client_server_private_IP
หากต้องการอัปเดตกฎ ให้รีสตาร์ทไฟร์วอลล์:
sudo firewall-cmd -- โหลดซ้ำ
แพ็กเก็ตที่มาจากที่อยู่ IP ของไคลเอ็นต์ควรได้รับการประมวลผลตามกฎในโซน Memcached เฉพาะ การเชื่อมต่ออื่นๆ ทั้งหมดจะถูกจัดการในโซนเริ่มต้นที่เป็นสาธารณะ
หลังจากนั้น คุณสามารถผูก Memcached กับอินเทอร์เฟซเครือข่ายส่วนตัวได้
การกำหนดค่า Memcached ให้รองรับอินเทอร์เฟซเครือข่ายส่วนตัว
เมื่อไฟร์วอลล์พร้อมแล้ว คุณสามารถผูก Memcached กับอินเทอร์เฟซส่วนตัวของเซิร์ฟเวอร์แทน 127.0.0.1 โดยแก้ไขตัวแปร OPTIONS
เปิด /etc/sysconfig/memcached:
sudo vi /etc/sysconfig/memcached
ภายใน ค้นหาตัวแปร OPTIONS ตอนนี้คุณต้องเปลี่ยน -l 127.0.0.1 และระบุที่อยู่ IP ภายในของเซิร์ฟเวอร์ Memcached:
. . .
OPTIONS="-l memcached_servers_private_IP -U 0 -S -vv"
บันทึกและปิดไฟล์
รีสตาร์ท Memcached:
sudo systemctl รีสตาร์ท memcached
ตรวจสอบว่าทุกอย่างทำงานอย่างถูกต้องโดยใช้คำสั่ง netstat:
sudo netstat -plunt
การเชื่อมต่ออินเทอร์เน็ตที่ใช้งานอยู่ (เฉพาะเซิร์ฟเวอร์)
Proto Recv-Q Send-Q Local Address ที่อยู่ต่างประเทศ State PID/ชื่อโปรแกรม
. . .
tcp 0 0 memcached_servers_private_IP:11211 0.0.0.0:* LISTEN 2383/memcached
. . .
ตรวจสอบการเชื่อมต่อจากไคลเอนต์ภายนอกเพื่อให้แน่ใจว่าคุณยังคงสามารถเข้าถึงบริการได้ นอกจากนี้ คุณควรทดสอบการเข้าถึงจากไคลเอนต์ที่ไม่ได้รับอนุญาตเพื่อให้แน่ใจว่าไฟร์วอลล์ไม่อนุญาตให้เชื่อมต่อผ่าน
บทสรุป
ตอนนี้คุณรู้วิธีติดตั้ง Memcached และรักษาความปลอดภัยของบริการนี้แล้ว
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Memcached โปรดดู
เมมแคช - ซอฟต์แวร์ซึ่งใช้บริการแคชข้อมูลในหน่วยความจำตามตารางแฮช
เมมแคชเป็นระบบแคชในหน่วยความจำประสิทธิภาพสูงที่ใช้เป็นหลักเพื่อเพิ่มความเร็วให้กับไซต์ที่ใช้ฐานข้อมูลอย่างเข้มข้น
ส่วนใหญ่ ภาษาสมัยใหม่ห้องสมุดสนับสนุนการเขียนโปรแกรม เมมแคช, รวมทั้ง พี.เอช.พี, เพิร์ล, ทับทิมและ หลาม. Memcached ทำงานใน RAM ดังนั้นการแลกเปลี่ยนข้อมูลจึงเกือบจะทันที
การติดตั้ง
ท่า: พอร์ตเริ่มต้นสำหรับการใช้ Memcached
ผู้ใช้: ผู้ใช้ที่เรียกใช้ Memcached
MAXCONN: จำนวนเงินสูงสุดการเชื่อมต่อ Memcached
ขนาดแคช: ขนาดแคชสำหรับหน่วยความจำ
ตัวเลือก: ตั้งค่าที่อยู่ IP ของเซิร์ฟเวอร์เพื่อให้เว็บเซิร์ฟเวอร์ Apache หรือ Nginx สามารถเชื่อมต่อได้
หลังจากที่เรารีสตาร์ทบริการ systemctl restart memcached
เราเพิ่มบริการ autorun systemctl enable memcached