ชีวประวัติ ลักษณะเฉพาะ การวิเคราะห์

ติดตั้ง 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

และเพลิดเพลินกับข้อดีทั้งหมดของวิธีการแคชนี้

คำถามที่พบบ่อย

    วิธีที่ง่ายที่สุดในการลบเนื้อหาทั้งหมดของไฟล์ (ล้าง) คือการคัดลอก "เนื้อหา" ของไฟล์ /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

  • การตั้งค่าสิทธิ์สำหรับไฟล์เดียว:

    chmod 644 /path/to/file/filename.ext โดยที่
    • /path/to/file/ - พาธไปยังไฟล์จากรูท
    • filename.ext - ชื่อไฟล์
    ง่ายยิ่งขึ้น - ไปที่โฟลเดอร์ไซต์แล้วเรียกใช้: chmod 644 filename.ext

    วิธีกำหนดสิทธิ์ให้กับไฟล์ทั้งหมด (รวมถึงไฟล์ในโฟลเดอร์ย่อย)

    ไปที่โฟลเดอร์ที่มีไฟล์อยู่และเรียกใช้: find . - พิมพ์ f -exec chmod 644 () \;
  • เมื่อปรากฎว่าผู้ใช้จำนวนมากไม่ทราบวิธีเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน shh (เข้าถึงคอนโซล) เพื่อใช้งานต่อไป ในบันทึกนี้ ฉันจะพยายามแก้ไขช่องว่างนี้ในความรู้! :) ในการเชื่อมต่อผ่าน SSH กับเซิร์ฟเวอร์ระยะไกล คุณไม่ต้องการอะไรมากมาย:

    • 1) ไคลเอนต์ SSH
    • 2) ข้อมูลสำหรับการเชื่อมต่อกับเซิร์ฟเวอร์ (ที่อยู่ IP ชื่อผู้ใช้และรหัสผ่าน) - สามารถรับได้จากผู้ให้บริการที่ให้เซิร์ฟเวอร์แก่คุณ

    เริ่มจากข้อแรกกันเลย

    การเชื่อมต่อผ่าน 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