Antecedentes rápidos:
Tenemos una única instancia de WordPress, con Multisite habilitado, que aloja tres blogs separados. (blog.example.com/blog1, blog.example.com/blog2, blog.example.com/blog3).
Este multisitio tendrá una carga equilibrada en un nivel web de cuatro servidores, todos con acceso al mismo DB. Entiendo que blogs.dir
será necesario sincronizarlo a través del nivel web, para que los medios estén presentes, sin importar a qué servidor acceda un cliente.
Pregunta:
¿Puedo tener un quinto servidor web (es decir, post.example.com
), cuyo único propósito es permitir que los editores inicien sesión y publiquen contenido nuevo para cualquiera de los tres blogs? De esta forma, los servidores de carga equilibrada son solo receptores de contenido cargado post.example.com
.
Sé que la parte de sincronización es posible, pero no estoy seguro de cómo configurar WordPress para que sea accesible desde dos subdominios diferentes. ¿Es eso posible?
Editar: Debo agregar que un objetivo adicional configurándolo de esta manera es que esperamos obtener algo de seguridad a través de la oscuridad, bloqueando el acceso /wp-admin/
en el nivel web, por lo que solo puede iniciar sesión desde un servidor web ( post
), pero de Por supuesto, todo depende de la pregunta antes mencionada. :)
Simulacro a continuación:
Respuestas:
Sí, esto es posible y varias agencias de noticias y medios trabajan con enfoques similares en WordPress.
¿Cuál es tu proceso editorial?
El paso más importante es comprender su proceso editorial y cuánto control necesita tener del contenido antes de que se publique.
- por ejemplo, considere estos 3 puntos:
1. ¿Necesita aprobaciones de terceros para las imágenes?
2. ¿Usted o su cliente tienen que firmar la copia / imágenes / video / diseño antes de publicar el contenido?
3. ¿Ustedes editores trabajan en diferentes semanas o problemas y están planeando que el contenido salga en vivo con semanas de anticipación ...
Si respondió Sí a cualquiera de estos, entonces una única base de datos compartida entre su servidor Pre-Live / Staging y su servidor Live no es 'posible'. ¿Porque preguntas? porque una nueva publicación debe publicarse antes de que pueda ser vista por personas que no sean usuarios o por terceros a quienes no desea que inicie sesión también. (Por cierto ... todo es posible con tiempo, dinero y habilidades para personalizar los roles de usuario y los niveles de acceso).
Así que volvamos a la solución escalable de WordPress
El DOMINIO A (al que van sus clientes y visitantes) deberá apuntar a un equilibrador de carga HTTP.
Load Balancer dirigirá el tráfico del cliente a uno de varios servidores web. Estos servidores esclavos se mantienen en LSYNC con un servidor MAESTRO.
Idealmente, debería haber 2 servidores de base de datos separados (para las solicitudes de lectura / escritura de equilibrio de carga y escala). Puede esperar mucho tráfico READ de los visitantes, pero desea asegurarse de que el tráfico WRITE de nuevas publicaciones, etc., no interrumpa sus solicitudes READ.
DOMINIO A también puede apuntar a un HTTPS Load Balancer que está configurado para
1. permitir solo el tráfico desde su dirección IP de Office y 2. FORZAR la conexión SSL para Admin / Login.
Este es un cambio fácil al
wp-config.php
archivo.Aquí hay un diagrama de lo que construimos (con algún soporte de Rackspace)
HyperDB
Al final, obtuvimos la configuración de HyperDB para administrar los múltiples servidores y solicitudes de DB. Esto también fue fácil ya que es principalmente un complemento con una secuencia de comandos de configuración larga.
W3TC W3 Total Cache
También obtuvimos la configuración HyperDB y W3TC ... esto también requirió mucha carga de los servidores DB
La razón principal por la que usamos W3TC fue para descargar todo el contenido estático en Rackspace. La configuración de Content Delivery Network en W3TC también es muy fácil :)
fuente