ข่าวร้าย: ฐานโอเพ่นซอร์สหลักของ Wordpress นั้นมีข้อสันนิษฐานบางประการเกี่ยวกับการเรียกใช้บนเซิร์ฟเวอร์เดียว (เนื้อหา wp, การอัพโหลดผู้ใช้และไลบรารีสื่อเพื่อบอกชื่อ)
ข่าวดี: ผู้ให้บริการคลาวด์ทุกคน (รวมถึง Azure) มีนามธรรมที่ช่วยให้คุณสามารถแก้ไขข้อ จำกัด การออกแบบเหล่านี้ได้
โดยพื้นฐานคุณจะต้องจัดการกับข้อกังวลดังต่อไปนี้:
- โหลดทราฟฟิกที่สมดุลระหว่างสองเว็บเซิร์ฟเวอร์ / แอพ Wordpress "front-end" หรือมากกว่า ไม่ยากเกินไปเนื่องจาก Wordpress นั้นไร้สัญชาติมากที่สุดเว้นแต่คุณจะให้ผู้ใช้เข้าสู่ระบบของเว็บไซต์ สิ่งนี้ทำผ่านการรวมกันของ DNS และ Load Balancer คุณจะต้องการการสนับสนุนสำหรับ 2 IP สำหรับเซิร์ฟเวอร์แอปของคุณ - 1 ชุดจะเชื่อมต่อกับเครือข่ายย่อยที่กำหนดเส้นทางผ่านอินเทอร์เน็ต (แม้ว่าหวังว่าจะได้รับการป้องกันโดยไฟร์วอลล์ที่ไม่ได้ระบุไว้ด้านล่าง) และอีกสองเครือข่ายย่อยนั้นจะแยกจากกัน เครือข่ายอื่นและมีอินสแตนซ์ของเซิร์ฟเวอร์ฐานข้อมูล แต่มีโครงร่างพื้นฐานดังนี้:
/ - (10.0.0.1 - eth0) wp1.domain.com (10.0.1.1 - eth2)
(IP สาธารณะ) wp.domain.com
\ - (10.0.0.2 - eth1) wp2.domain.com (10.0.1.2 - eth3)
การจัดการเซสชันหากคุณให้ผู้ใช้เข้าสู่เว็บไซต์ ถ้าเป็นเช่นนั้นคุณจะต้องแน่ใจว่าเมื่อพวกเขาลงชื่อเข้าใช้เซิร์ฟเวอร์ 1 ว่าคำขอในอนาคตทั้งหมดของพวกเขาจะถูกส่งไปยังเซิร์ฟเวอร์นั้น (เซสชันที่มีการยึดติด) หรือไม่สำคัญว่าเซิร์ฟเวอร์ใดที่พวกเขาเข้าถึง (ผ่านZend Server Session Clusteringเป็นต้น)
การจัดการการเข้าสู่ระบบของผู้ดูแลระบบหากคุณให้ผู้ใช้บางคนเข้าสู่ระบบเพื่อจัดการเนื้อหา (คล้ายกับด้านบน)
การเลือกระบบฐานข้อมูลที่พร้อมใช้งานสูง ไม่มีจุดที่จะมีเซิร์ฟเวอร์หน้าสองตัวหากการขัดข้องของฐานข้อมูลทำให้ระบบทั้งหมดล่ม คุณจะต้องใช้ประโยชน์จากการจำลองแบบ MySQL Master / Slave ผ่าน ClearDB หรือแก้ไข WordPress ผ่านทางปลั๊กอินเพื่อใช้ประโยชน์จาก SQL Serverเพื่อให้คุณสามารถใช้ระบบการจัดกลุ่มแบบเนทีฟ นี่หมายความว่าคุณต้องการ VM อย่างน้อย 4 แห่งหากคุณต้องการจัดการเลเยอร์ DB ด้วยตัวคุณเอง (2 x App & 2 x DB) นี่คือลักษณะที่อาจมีลักษณะ:
/ - wp1.domain.com (10.0.1.1) \ --- / (10.0.1.3) db1.domain.com (10.0.2.3) \
wp.domain.com X |
\ - wp2.domain.com (10.0.1.2) / --- \ (10.0.1.4) db2.domain.com (10.0.2.3) /
หมายเหตุ - เพื่อให้แน่ใจความล้มเหลวที่เชื่อถือได้ & ป้องกันความปลอดภัยของระบบเครือข่ายย่อยที่สามจะใช้เพื่อเชื่อมต่อโหนดฐานข้อมูลสองโหนดซึ่งกันและกันผ่านช่องส่วนตัวที่แยกจากเครือข่ายการสื่อสารอื่นที่เซิร์ฟเวอร์แอปใช้เพื่อพูดคุยกับ ฐานข้อมูลและเซิร์ฟเวอร์แอปใช้เพื่อสื่อสารกับโลกภายนอก
การเปิดใช้งานการรวมการเชื่อมต่อเพื่อเพิ่มประสิทธิภาพและความน่าเชื่อถือของการเชื่อมต่อฐานข้อมูลเซิร์ฟเวอร์แอปของคุณ
การใช้ประโยชน์จากปลั๊กอินสำหรับการแคชเช่น W3 Total Cache หรือ Super Cache เพื่อลดการโหลดบนเซิร์ฟเวอร์ส่วนหน้า
คำแนะนำต่อไปนี้เสนอข้อมูลเฉพาะเกี่ยวกับวิธีที่คุณสามารถจัดการกับความท้าทายแต่ละข้อข้างต้น มีหลายวิธีในการจัดการแต่ละอย่างใน Azure ดังนั้นมันขึ้นอยู่กับคุณที่จะตัดสินใจว่าคุณต้องการโจมตีความท้าทายแต่ละข้ออย่างไร