Cómo combinar sin problemas Wordpress y Ruby en la aplicación Rails en el mismo backend, un dominio, un servidor

Read this article in:

Este artículo fue publicado por primera vez el 2023-07-05

Supongamos que desea servir algunos caminos con carriles, y algunos otros caminos con wordpress. o desea que la aplicación sirva páginas de raíles si están disponibles, y retroceda en wordpress de otro modo.

Para SEO y generalmente para tener una buena estructura de recursos en línea, tal vez quieras que las aplicaciones (las llamaremos aguas arriba) compartan el espacio de nombres. En otras palabras, si usted es categorías de servicios, desea que los caminos se vean como /categorías/tea-kettles , /categorías/coffee-mugs en lugar de /blog/categorías/tea-kettles y /rails-app/categories/coffee-mugs . La pregunta entonces es, ¿cuál es la solución técnica para este desafío?

Usaremos Nginx para abordar este problema.

 upstream backends {
servidor 192.2.0.1;
servidor 192.2.0.2;
...
}

servidor {
...

ubicación / {
proxy pass http://backends;
proxy next upstream error timeout http 404;
}
}

donde los servidores de corriente son carriles y wordpress, en ese orden.

¡Vamos a probarlo en el localhost!

Y para archivos en disco, tal vez activos estáticos, el config es el siguiente:

 ubicación / {
root /path/to/root;
try files $uri @fallback;
}

ubicación @fallback {
proxy pass http://...
}

Otra solución menos preferible y no comprobada sería:

 ubicación / {
# Enviar 404s a B
error page 404 = @backendB;
proxy intercept errores on;
log not found off;

Pruebe el proxy como normal
proxy set header X-Forwarded-For $remote addr;
proxy set header Host $host;
proxy set header X-Real-IP $remote addr;
proxy pass http://A;
}

ubicación @backendB {
Si A no funcionó, probemos B.
proxy set header X-Forwarded-For $remote addr;
proxy set header Host $host;
proxy set header X-Real-IP $remote addr;
proxy pass http://B;

# Any 404s here are handled normally.
}
Please login to post comments: