Wordpress trên bản sao IIS với robocopy


10

Chúng tôi thiết lập một môi trường wordpress trên 4 máy chủ IIS. Chúng tôi đang xem xét sử dụng một tác vụ theo lịch trình kích hoạt tập lệnh robocopy để sao chép thư mục wordpress cứ sau 5 phút.

Các ý kiến ​​về cách tiếp cận như vậy là gì? Có ai đã từng sử dụng cái này hoặc tương tự chưa?


4 máy chủ IIS phyical hoặc VM là gì? Bạn đang sao chép dữ liệu hoặc cơ sở dữ liệu và cấu hình là gì? Không chắc chắn lý do tại sao bạn có 4 máy chủ 1 là chủ (tôi giả sử) và những máy chủ khác bị động nếu bạn đang cố gắng đạt được HA mà sẽ không hoạt động.
Anthony Fornito

1
Câu hỏi thứ hai (và có lẽ là quan trọng nhất) tại sao bạn chạy wordpress trên windows?
Anthony Fornito

Cảm ơn @AnthonyFornito đã trả lời của bạn. Chạy wordpress trên windows vì lý do nội bộ. Tôi chỉ đang cố gắng làm việc với nó. Tôi sau khi sao chép các tập tin trang web (Sao chép cơ sở dữ liệu đã được xử lý thông qua MYSQL). Mặt trước là VM trên Azure. Tôi chủ yếu sau một giải pháp trong đó tất cả các giao diện người dùng chia sẻ cùng một tệp trang web. Có bất cứ điều gì bạn sẽ đề nghị?
joebegborg07

Câu trả lời:


12

Có 4 máy chủ ngoại vi chia sẻ cùng một tệp cùng một lúc và mỗi máy chủ có thể ghi mà không cần sử dụng một loại chương trình DFS hoặc bên thứ ba nào dành riêng cho đồng bộ hóa thư mục sẽ là một trò chơi đêm.

Với azure bạn có thể nhìn vào 3 điều.

  1. Lưu trữ được chia sẻ, có thể có một số chi phí liên quan đến việc có được lưu trữ chuyên dụng của riêng bạn và tôi không chắc chắn về cấu hình tuy nhiên Azure cung cấp điều này. Điều này sẽ đảm bảo tất cả các tệp của bạn có sẵn cho mỗi máy chủ ngay khi chúng được viết.

  2. Azure DFS, DFS là một công cụ đồng bộ hóa thư mục dựa trên windows hoạt động khá tốt, cũng không chắc chắn về chi phí nhưng cấu hình có thể dễ dàng hơn một chút. DFS không hoạt động không đồng bộ nên có một chút chậm trễ nhưng không nhiều.

  3. . Bạn sẽ cần chia sẻ từng thư mục với một máy chủ đang chạy tập lệnh, thiết lập quyền để máy chủ có thể đọc và viết và sau đó khắc phục sự cố, khắc phục sự cố.

Hoặc là tùy chọn từ trên sẽ thực hiện công việc, nếu công việc của bạn phụ thuộc vào công việc này, tôi khuyên bạn nên tránh xa tùy chọn 3.

Điều đó đang được nói, và bạn không cố gắng chi tiêu bất kỳ khoản tiền nào, hãy làm theo các bước dưới đây.

  1. nhìn vào một chương trình gọi là "đồng bộ tập tin miễn phí". Có một số tính năng thực sự tốt cho phiên bản miễn phí Tôi tin rằng có một phiên bản trả phí nhưng tôi không chắc chắn về những cải tiến bạn nhận được. Tôi đã sử dụng nó trong rất nhiều môi trường dev của mình khi cố gắng đạt được thứ gì đó tương tự như những gì bạn đang muốn làm và lười biếng thiết lập DFS.

  2. Chỉ tạo một máy chủ có thể ghi, điều này có thể được thực hiện dễ dàng bằng cách định cấu hình URI trên mỗi máy chủ cho biết nếu tạo bài viết, hãy truy cập ServerA hoặc viết lại URL trong web.config hoặc WordPress sử dụng php:

    tiêu đề ('Vị trí: http://myhost.com/mypage.php ');

Mỗi người sẽ lấy một ít kiến ​​thức về mã hóa và PHP, IIS.

  1. Phần thực sự thú vị, với ServerA là máy chủ tác giả (chỉ máy chủ có thể ghi) làm thế nào để chúng tôi hướng lưu lượng truy cập đến ServerB, ServerC và ServerD để đọc mà không cần bộ cân bằng tải?

Câu trả lời ngắn gọn bạn không thể, điều đó không chính xác, tôi đã có một khách hàng một lần rất kiên quyết về việc không sử dụng bộ cân bằng tải mà anh ta có thể thông qua một loạt các tập lệnh powershell để chuyển kết nối từ máy chủ này sang máy chủ khác dựa trên số lượng công nhân xử lý trên mỗi hộp hoặc một cái gì đó như thế. Một trong những cách rất khó để làm và không xứng đáng với thời gian và năng lượng để đưa ra.

Xem nếu bạn không thể định cấu hình Cân bằng tải mạng trên các máy chủ, Nó sẽ yêu cầu IP bổ sung nhưng chỉ có một thay đổi DNS và lưu lượng có thể được phân phối để đọc trên 3 máy chủ.

Chúc may mắn!


Rất cám ơn lời đề nghị của bạn. Bộ lưu trữ trung tâm duy nhất là một nút cổ chai đối với chúng tôi vì chúng tôi đã thiết lập trước đó nhưng không đối phó với lưu lượng truy cập cao. Chúng tôi cần một giải pháp nhanh chóng do thời hạn. Cuối cùng chúng tôi đã sử dụng resilio, một giải pháp đồng bộ hóa thời gian thực ngang hàng, phát hiện các thay đổi trên bất kỳ máy chủ nào và sao chép sang máy chủ khác. Tôi hy vọng bất cứ ai có vấn đề tương tự hoặc tương tự đều có thể giải quyết vấn đề này giống như cách chúng tôi đã làm. Tôi đang kiểm tra đề xuất của bạn về việc viết lại URL cho phụ trợ WP và đẩy các thay đổi sang các máy khác. Cảm ơn một lần nữa.
joebegborg07

NLB không hoạt động trên Azure (không có lớp 2, nếu bạn muốn một số cơn ác mộng thực sự khủng khiếp chỉ cần thử nhìn vào bảng ARP trên máy ảo Azure).
Massimo

12

Cảm ơn tất cả những lời đề nghị mọi người.

Giải pháp của chúng tôi là sử dụng phương pháp đồng bộ hóa ngang hàng bằng cách sử dụng một công cụ gọi là resilio.

Resilio cho phép chúng tôi định cấu hình một số máy tính (trong trường hợp này là IIS Front kết thúc) trong cụm đồng bộ hóa ngang hàng. Một thư mục được chọn từ mỗi máy tính trong cụm được sử dụng cho quá trình đồng bộ hóa.

Dịch vụ resilio (dịch vụ windows chạy trong nền), theo dõi các thư mục này xem có bất kỳ thay đổi nào không và nếu có thay đổi đối với bất kỳ thư mục được chỉ định nào ở mặt trước trong câu hỏi, resilio sẽ đẩy thay đổi đó sang các máy chủ khác.

Tôi hy vọng điều này có thể giúp những người khác đối mặt với một vấn đề tương tự trong tương lai.


11

Tôi không nghĩ các nhiệm vụ theo lịch trình và Robocopy là một cách tiếp cận tuyệt vời. Do cửa sổ 5 phút sẽ có lúc tài nguyên được yêu cầu nhưng máy chủ được chọn bởi bộ cân bằng tải sẽ không có sẵn. Đối với các trang web phần lớn tĩnh, điều này sẽ xảy ra ít thường xuyên hơn so với các trang web bận rộn thường xuyên thay đổi. Tần suất cao hơn hoặc sử dụng công nghệ đồng bộ hóa khác như Bittorrent Sync (hiện được gọi là Resilio Sync ) sẽ cải thiện điều này khá nhiều, nhưng không loại bỏ được vấn đề.

Đưa nội dung wp của bạn hoặc có thể chỉ là thư mục wp-content / upload lên ổ đĩa chung sẽ là giải pháp tốt hơn. Một cách khác để xem xét điều này sẽ có một trong các máy chủ lưu trữ thư mục đó và để những người khác chia sẻ nó. Với bộ nhớ đệm đĩa, tải trên máy chủ không nên cao hơn nhiều so với các máy chủ khác.

Cập nhật

Hãy xem bài viết này để biết các ý tưởng về bộ nhớ đệm trang và bài này cho CDN. Đó là về Nginx, vì vậy bạn sẽ cần phải làm việc với IIS, nhưng lý thuyết đằng sau nó là hợp lệ cho bất kỳ máy chủ web nào.


Cảm ơn lời đề nghị của bạn @Tim. Như bạn đã nói trang web này rất năng động, với các cập nhật tệp nhỏ thường xuyên do các plugin wordpress được đặt ra; Điều đó có nghĩa là mỗi giao diện người dùng có thể có các tệp khác nhau vào các thời điểm. Bạn đã bao giờ thử nghiệm môi trường sản xuất như vậy (khoảng 500 - 1000 người dùng đồng thời); tức là lưu trữ các tập tin trang web trong một kho lưu trữ trung tâm và được ánh xạ thông qua một ổ đĩa chung? Nếu có, làm thế nào là kinh nghiệm.
joebegborg07

Không, tôi chưa thử kịch bản đó - Tôi không cần vì tôi lưu trữ và sử dụng CDN. Bạn sẽ cần tải thử nghiệm các máy chủ ngoại vi bao gồm máy chủ tệp mặt sau. Tuy nhiên, nếu các trang của bạn không bị cắt xén cho mỗi bộ nhớ cache của trang người dùng có thể giảm tải một cách ồ ạt, cũng như sử dụng phân phối nội dung - CloudFlare có một lớp miễn phí. Điều này đúng ngay cả khi bạn cập nhật cứ sau 5 phút. Google "Nginx Microcaching" cho lý thuyết đằng sau nó, nhưng rõ ràng bạn sẽ phải triển khai nó khác trên IIS. Tiêu đề bộ nhớ đệm là khá quan trọng nếu bạn đi tuyến đường này. Xem cập nhật ở trên quá.
Tim
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.