Actualizar, agregar, eliminar complementos, temas o wordpress detrás del equilibrador de carga

4

Estoy ejecutando wordpress en dos servidores idénticos. Ambos se sientan detrás de un equilibrador de carga. Ambos usan la misma base de datos.

¿Cómo se supone que debo hacer cosas como actualizar un complemento o wordpress?

Mi pensamiento actual es:

  1. Desconecta uno de los servidores de la LB, así que sé con cuál estoy trabajando.
  2. Realice los cambios necesarios (por ejemplo: complemento de actualización) a través del panel de control.
  3. Copie el directorio necesario del servidor activo (por ejemplo: plugins/some_plugin ) y reemplace ese archivo en el servidor inactivo. (Dado que ya se realizaron cambios en la base de datos, no quiero usar el Tablero para actualizar el otro servidor).

¿Es esta la forma de actualizar / eliminar / agregar complementos / wordpress?

Pensé que esta sería una forma común de configurar wordpress, pero no encontré mucha documentación al respecto. ¿Hay una configuración preferida?

Gracias.

    
pregunta theyuv 16.11.2016 - 17:38

4 respuestas

2

Esta es una pregunta fantástica. Personalmente, nunca me he topado con esto antes, pero esto es lo que intentaría, asumiendo:

  • tienes una imagen de un servidor que has estado usando para generar nuevas instancias
  • estás usando un CDN y almacenamiento en la nube para imágenes y cargas (en lugar de tener una carpeta de cargas local)

Con estas dos suposiciones, significa que puede girar y reducir instancias del servidor sin preocuparse por la pérdida de datos; los archivos y la configuración entre cada servidor son idénticos.

  • Gire una nueva instancia de su servidor, pero no la agregue al equilibrador de carga
  • apunta tu archivo de hosts a la IP de la instancia
  • actualice el complemento en la instancia, asegúrese de que todo funciona como espera
  • crea una imagen del servidor actualizado
  • girar una instancia más en función de la imagen actualizada
  • apunta el LB a las nuevas instancias

Este es un proceso un tanto doloroso, y creo que a continuación también veremos las herramientas de implementación automatizadas, como Capistrano, o tal vez un servicio como Implementar.

    
respondido por el guiniveretoo 16.11.2016 - 18:33
1

Esto debe hacerse en pocos pasos

  1. replicar la base de datos (en caso de que aún no tenga una).
  2. quite un servidor de la LB, cambie su configuración para que apunte a la "nueva" base de datos.
  3. conéctese al área de administración solo a ese servidor (defina en su archivo localhosts la IP o de cualquier otra forma y realice la actualización).
  4. En la LB, apague el otro servidor y el actualizado.
  5. actualizar el complemento en el otro servidor (básicamente es suficiente para actualizar el código)
  6. conecte el otro servidor al "nuevo" DB
  7. cambie la configuración de LB para habilitar el otro servidor.

Como este no es un procedimiento extremadamente rápido, debe minimizar la cantidad de complementos que usa como complementos puros, o intentar actualizar la mayor cantidad posible al mismo tiempo.

(Escribí el complemento, pero también se aplica a los temas y al núcleo)

    
respondido por el Mark Kaplun 16.11.2016 - 18:42
0

He estado en esta misma situación durante muchos años: 3 servidores detrás de un equilibrador de carga. Diferentes subsistemas de disco. Base de datos compartida. De hecho, encontré esta pregunta buscando alguna forma de simplificar la administración. Lo que he estado haciendo (y lo que me ha funcionado bien) durante muchos años es lo siguiente:

  1. Asegúrese de tener copias de seguridad automáticas de todo (base de datos y archivos) ... por si acaso. Nunca los he necesitado, pero ese es siempre un requisito previo.
  2. Inicie sesión en la consola de administración de WP y observe a qué servidor se está conectando, si es posible
  3. Actualiza wordpress y complementos usando los métodos de IU normales
  4. Inicie sesión en el servidor en cuestión (y si no pudo saber cuál estaba usando alguna característica de su infraestructura, consulte las marcas de tiempo de los archivos de complementos que acaba de actualizar).
  5. Copie el árbol de directorios de wordpress a los otros servidores
  6. Realice una copia de seguridad de los directorios WP antiguos allí y sustitúyalos por los nuevos directorios.

Esto nunca ha fallado. Sin embargo, no se recomienda al 100%, ya que la ejecución de WP en los servidores que aún no se han actualizado podría tener problemas durante la actualización debido a inconsistencias en el software o la base de datos. Por lo general, el proceso es muy rápido de todos modos.

La mejor solución es hacer lo anterior, pero al dejar los servidores que no está actualizando antes de ponerlos en servicio y actualizarlos antes de volver a habilitarlos en su equilibrador de carga. Supongo que depende de usted dónde encaja en la curva "rápida y fácil" frente a "riesgo" de su blog.

    
respondido por el Erik Kangas 09.03.2017 - 14:01
0

La mayoría de estas respuestas parecen basarse en el supuesto de que solo está ejecutando / actualizando su sitio web en un servidor remoto; Y como tal, algunas de las soluciones parecen muy complicadas. Tengo dos sitios que se ejecutan detrás de balanceadores de carga: uno con 2 servidores y otro con 4; ambos de los cuales son escalables a tantos servidores como sea necesario. Ambos sitios se mantienen & actualizado con un par de clics usando una compilación local, Git y Jenkins.

Tengo una copia funcional de los sitios en localhost que se ejecuta bajo XAMPP . Las bases de datos no son idénticas, pero la estructura del archivo es. También tengo una cuenta privada de BitBucket y un .gitignore para ignorar cosas como mi carpeta local wp-config y la carpeta /uploads/ (que no quiero ni necesito sincronizar con el servidor).

Siempre que hay una actualización de un complemento, lo actualizo a través de Wordpress en mi localhost de manera normal. Una vez hecho esto, abro mi cliente Git y presiono los cambios a BitBucket.

En el servidor, tengo un servicio Jenkins que está configurado para compilar desde mi fuente de BitBucket al sitio en vivo. Hago clic en Crear , espero un par de minutos y todo está listo. Jenkins compila a todos los servidores, y hay rsync disponible para asegurarse de que todo sea simpático.

Por lo tanto, todo mi proceso de actualización es Actualizar local - > Git push - > Compilación Jenkins

Esto depende de que tengas un localhost u otra versión controlable que puedas empujar con Git, pero una vez que esté configurado y funcionando, la actualización de tu sitio de Wordpress con equilibrio de carga se vuelve increíblemente fácil.

    
respondido por el indextwo 24.03.2017 - 12:14

Lea otras preguntas en las etiquetas