Configuramos un entorno de wordpress en 4 servidores IIS. Estamos considerando usar una tarea programada que active una secuencia de comandos robocopy para replicar el directorio de wordpress cada 5 minutos.
¿Cuáles son las opiniones sobre este enfoque? ¿Alguien ha usado esto o algo similar?
windows
iis
web-server
wordpress
joebegborg07
fuente
fuente
Respuestas:
Tener 4 servidores front-end que comparten los mismos archivos al mismo tiempo y cada uno puede escribir sin usar algún tipo de DFS o un programa de terceros dedicado a la sincronización de directorios sería una yegua nocturna.
Con azul puedes mirar en 3 cosas.
Almacenamiento compartido, puede haber algún costo asociado con la obtención de su propio almacenamiento dedicado, y no estoy seguro de la configuración, sin embargo, Azure ofrece esto. Esto garantizaría que todos sus archivos estén disponibles para cada servidor tan pronto como se escriban.
Azure DFS, DFS es una herramienta de sincronización de directorios basada en Windows que funciona bastante bien, no está seguro sobre el costo, pero la configuración podría ser un poco más fácil. DFS funciona de forma asíncrona, por lo que hay un pequeño retraso, pero no mucho.
(Voy a explicar cómo se haría esto y luego nunca volveré a hablar de ello, porque es una idea horrible y fallará). Cree un script que primero compare los datos en los cuatro servidores y luego copie los datos diferenciales. Debería compartir cada directorio con el servidor que ejecuta la secuencia de comandos, permiso de configuración para que el servidor pueda leer y escribir y luego solucionar problemas, solucionar problemas.
Cualquiera de las opciones anteriores hará el trabajo, si su trabajo depende de este trabajo, le recomendaría que se mantenga alejado de la opción 3.
Dicho esto, y no estás tratando de gastar dinero, sigue los pasos a continuación.
mira un programa llamado "sincronización de archivos gratis". Hay algunas características realmente buenas para la versión gratuita. Creo que hay una versión paga pero no estoy seguro de las mejoras que obtienes. Lo he usado en muchos de mis entornos de desarrollo al tratar de lograr algo similar a lo que está buscando hacer y fue flojo para configurar DFS.
Haga que solo se pueda escribir un servidor, esto se puede hacer fácilmente configurando un URI en cada servidor que diga si crear un artículo vaya a ServerA, o una reescritura de URL en su web.config, o si WordPress es php use:
encabezado ('Ubicación: http://myhost.com/mypage.php ');
Cada uno requerirá un poco de codificación y PHP, conocimiento de IIS.
Respuesta corta que no puede, bueno, eso no es exactamente cierto, una vez tuve un cliente que se mostró inflexible acerca de no usar un equilibrador de carga que pudo a través de una serie de scripts de PowerShell para mover una conexión de un servidor a otro en función de la cantidad de procesos de trabajo en cada caja o algo así. De cualquier manera, es muy difícil de hacer y no vale la pena el tiempo y la energía.
Vea si no puede configurar el Equilibrio de carga de red en los servidores. Se requerirá una IP adicional pero es solo un cambio de DNS y el tráfico se puede distribuir para leer en los 3 servidores.
¡Buena suerte!
fuente
Gracias por todas las sugerencias personas.
Nuestra solución fue utilizar un enfoque de sincronización de igual a igual utilizando una herramienta llamada resilio.
Resilio nos permitió configurar una cantidad de computadoras (en este caso, front-end IIS) en un clúster de sincronización punto a punto. Se selecciona una carpeta de cada computadora en el clúster para utilizarla en el proceso de sincronización.
El servicio de resilio (servicio de Windows que se ejecuta en segundo plano), monitorea estas carpetas en busca de cambios y si se realiza un cambio en cualquiera de las carpetas especificadas en los front-end en cuestión, resilio empujará ese cambio a los otros servidores.
Espero que esto pueda ayudar a otros que enfrentan un problema similar en el futuro.
fuente
No creo que las tareas programadas y Robocopy sea un gran enfoque. Debido a la ventana de 5 minutos, habrá momentos en los que se solicite un recurso, pero el servidor seleccionado por el equilibrador de carga no lo tendrá disponible. Para sitios en gran parte estáticos, esto sucederá con mucha menos frecuencia que con sitios ocupados que cambian con frecuencia. Una frecuencia más alta o el uso de una tecnología de sincronización diferente como Bittorrent Sync (ahora llamada Resilio Sync ) mejoraría esto bastante, pero no eliminaría el problema.
Poner su contenido wp o tal vez solo la carpeta wp-content / uploads en una unidad compartida sería una mejor solución. Otra forma de ver esto sería hacer que uno de los servidores aloje esa carpeta y que los demás la compartan. Con el almacenamiento en caché de disco, la carga en el servidor no debería ser mucho más alta que la de los otros servidores.
Actualizar
Eche un vistazo a este artículo para obtener ideas sobre el almacenamiento en caché de páginas, y este para CDN. Se trata de Nginx, por lo que deberá resolverlo para IIS, pero la teoría subyacente es válida para cualquier servidor web.
fuente