เราตั้งค่าสภาพแวดล้อม wordpress บนเซิร์ฟเวอร์ 4 IIS เรากำลังพิจารณาใช้งานที่กำหนดเวลาเพื่อเรียกใช้สคริปต์ robocopy เพื่อทำซ้ำไดเรกทอรี wordpress ทุก 5 นาที
อะไรคือความคิดเห็นเกี่ยวกับวิธีการดังกล่าว? มีใครเคยใช้สิ่งนี้หรือคล้ายกันบ้าง
เราตั้งค่าสภาพแวดล้อม wordpress บนเซิร์ฟเวอร์ 4 IIS เรากำลังพิจารณาใช้งานที่กำหนดเวลาเพื่อเรียกใช้สคริปต์ robocopy เพื่อทำซ้ำไดเรกทอรี wordpress ทุก 5 นาที
อะไรคือความคิดเห็นเกี่ยวกับวิธีการดังกล่าว? มีใครเคยใช้สิ่งนี้หรือคล้ายกันบ้าง
คำตอบ:
การมีเซิร์ฟเวอร์ส่วนหน้า 4 ตัวที่ใช้ไฟล์เดียวกันในเวลาเดียวกันและแต่ละไฟล์สามารถเขียนได้โดยไม่ต้องใช้ DFS หรือโปรแกรมของบุคคลที่สามที่ทุ่มเทให้กับการทำข้อมูลไดเรกทอรีให้ตรงกัน
ด้วยสีฟ้าคุณสามารถดู 3 สิ่ง
พื้นที่เก็บข้อมูลที่ใช้ร่วมกันอาจมีค่าใช้จ่ายที่เกี่ยวข้องกับการใช้พื้นที่เก็บข้อมูลเฉพาะของคุณเองและฉันไม่แน่ใจเกี่ยวกับการกำหนดค่าอย่างไรก็ตาม Azure เสนอสิ่งนี้ สิ่งนี้จะทำให้มั่นใจได้ว่าไฟล์ทั้งหมดของคุณพร้อมใช้งานสำหรับแต่ละเซิร์ฟเวอร์ทันทีที่เขียน
Azure DFS, DFS เป็นเครื่องมือการซิงโครไนซ์ไดเรกทอรีที่ใช้ windows ซึ่งทำงานได้ค่อนข้างดีและไม่แน่ใจเกี่ยวกับค่าใช้จ่าย แต่การกำหนดค่าอาจทำได้ง่ายกว่าเล็กน้อย DFS ทำงานแบบอะซิงโครนัสดังนั้นจึงมีความล่าช้าเล็กน้อย แต่ไม่มาก
(ฉันจะอธิบายว่าจะทำอย่างไรและจะไม่พูดถึงมันอีกเพราะเป็นความคิดที่น่ากลัวและล้มเหลว) สร้างสคริปต์ที่จะเปรียบเทียบข้อมูลในเซิร์ฟเวอร์ทั้งสี่ตัวก่อนจากนั้นจึงคัดลอกข้อมูลส่วนต่าง คุณจะต้องแชร์แต่ละไดเรกทอรีไปยังเซิร์ฟเวอร์เดียวที่ใช้งานสคริปต์การตั้งค่าสิทธิ์เพื่อให้เซิร์ฟเวอร์สามารถอ่านและเขียนจากนั้นแก้ไขปัญหาแก้ไขปัญหา
ตัวเลือกอย่างใดอย่างหนึ่งจากด้านบนจะทำงานถ้างานของคุณขึ้นอยู่กับงานนี้ฉันขอแนะนำให้คุณหลีกเลี่ยงตัวเลือก 3
ที่ถูกกล่าวและคุณไม่ได้พยายามใช้เงินทำตามขั้นตอนด้านล่าง
ดูโปรแกรมที่เรียกว่า "ซิงค์ไฟล์ฟรี" มีบางคุณสมบัติที่ดีจริง ๆ กับรุ่นฟรีฉันเชื่อว่ามีการจ่ายเงินสำหรับรุ่น แต่ฉันไม่แน่ใจในการปรับปรุงที่คุณได้รับ ฉันได้ใช้มันในสภาพแวดล้อมการพัฒนาของฉันจำนวนมากเมื่อพยายามทำสิ่งที่คล้ายกับสิ่งที่คุณต้องการทำและขี้เกียจที่จะติดตั้ง DFS
สร้างเซิร์ฟเวอร์เดียวที่เขียนได้นี้สามารถทำได้ง่าย ๆ โดยกำหนดค่า URI บนแต่ละเซิร์ฟเวอร์ที่ระบุว่าถ้าสร้างบทความไปที่ ServerA หรือ URL เขียนใหม่ใน web.config ของคุณหรือว่า WordPress ใช้ php:
header ('ตำแหน่ง: http://myhost.com/mypage.php ');
แต่ละคนจะใช้เวลาเล็กน้อยในการเขียนโค้ดและความรู้เกี่ยวกับ PHP, IIS
คำตอบสั้น ๆ ที่คุณทำไม่ได้นั่นก็ไม่จริงฉันมีลูกค้าหนึ่งครั้งที่ยืนกรานว่าจะไม่ใช้ตัวโหลดบาลานซ์เขาสามารถใช้สคริปต์ PowerShell หลายชุดเพื่อย้ายการเชื่อมต่อจากเซิร์ฟเวอร์หนึ่งไปยังเซิร์ฟเวอร์อื่นตามจำนวน กระบวนการของผู้ปฏิบัติงานในแต่ละกล่องหรืออะไรทำนองนั้น ทั้งสองวิธีทำได้ยากมากและไม่คุ้มค่ากับเวลาและพลังงานที่จะนำออกมา
ดูว่าคุณไม่สามารถกำหนดค่า Network Load Balancing บนเซิร์ฟเวอร์ได้หรือไม่จะต้องมี IP เพิ่มเติม แต่จะมีการเปลี่ยนแปลง DNS เพียงรายการเดียวและปริมาณการใช้งานสามารถแจกจ่ายเพื่อการอ่านผ่านเซิร์ฟเวอร์ 3 เครื่อง
โชคดี!
ขอบคุณสำหรับคำแนะนำทุกคน
โซลูชันของเราใช้วิธีการซิงโครไนซ์แบบ peer-to-peer โดยใช้เครื่องมือที่เรียกว่า resilio
Resilio ช่วยให้เราสามารถกำหนดค่าคอมพิวเตอร์จำนวนหนึ่ง (ในกรณีนี้ IIS Front ลงท้ายด้วย) ในคลัสเตอร์การประสานแบบ peer-to-peer โฟลเดอร์จะถูกเลือกจากคอมพิวเตอร์แต่ละเครื่องในคลัสเตอร์ที่จะใช้สำหรับกระบวนการซิงโครไนซ์
บริการ resilio (บริการ windows ที่ทำงานในพื้นหลัง) ตรวจสอบโฟลเดอร์เหล่านี้สำหรับการเปลี่ยนแปลงใด ๆ และหากมีการเปลี่ยนแปลงใด ๆ กับโฟลเดอร์ที่ระบุที่อยู่ด้านหน้าสุดคำถาม resilio จะผลักดันการเปลี่ยนแปลงนั้นไปยังเซิร์ฟเวอร์อื่น ๆ
ฉันหวังว่าสิ่งนี้จะช่วยให้ผู้อื่นประสบปัญหาที่คล้ายกันในอนาคต
ฉันไม่คิดว่างานที่กำหนดไว้และ Robocopy เป็นวิธีการที่ยอดเยี่ยม เนื่องจากหน้าต่าง 5 นาทีจะมีเวลาที่ขอทรัพยากร แต่เซิร์ฟเวอร์ที่เลือกโดยตัวโหลดบาลานซ์จะไม่พร้อมใช้งาน สำหรับไซต์แบบคงที่ส่วนใหญ่สิ่งนี้จะเกิดขึ้นบ่อยกว่าเว็บไซต์ที่มีการเปลี่ยนแปลงบ่อย ความถี่ที่สูงขึ้นหรือการใช้เทคโนโลยีการซิงค์ที่แตกต่างกันเช่น Bittorrent Sync (ตอนนี้เรียกว่าResilio Sync ) จะปรับปรุงให้ดีขึ้นอีกเล็กน้อย แต่ไม่กำจัดปัญหา
การวางเนื้อหา wp ของคุณหรืออาจแค่แค่ไฟล์ wp-content / uploads ไปยังไดรฟ์ที่แชร์นั้นเป็นวิธีที่ดีกว่า อีกวิธีในการดูที่นี่คือการมีเซิร์ฟเวอร์โฮสต์โฮสต์โฟลเดอร์นั้นและให้คนอื่นแบ่งปัน ด้วยการแคชดิสก์การโหลดบนเซิร์ฟเวอร์ไม่ควรสูงกว่าเซิร์ฟเวอร์อื่นมากนัก
ปรับปรุง
ดูบทความนี้สำหรับแนวคิดเกี่ยวกับการแคชหน้าและอีกหนึ่งสำหรับ CDN มันเกี่ยวกับ Nginx ดังนั้นคุณจะต้องใช้มันกับ IIS แต่ทฤษฏีเบื้องหลังมันใช้ได้กับเว็บเซิร์ฟเวอร์ใด ๆ