Como combinar perfeitamente o aplicativo Wordpress e Ruby on Rails na mesma infraestrutura, um domínio, um servidor

Read this article in:

Este artigo foi publicado pela primeira vez em 2023-07-05

Suponha que você queira servir alguns caminhos com trilhos, e alguns outros caminhos com wordpress. ou você quer que o aplicativo para servir rails páginas se eles estão disponíveis, e voltar no wordpress caso contrário.

Para SEO e geralmente ter uma boa estrutura de recursos online, talvez você queira que os aplicativos (vamos chamá-los de upstreams) compartilhem o espaço de nomes. Em outras palavras, se você é categorias de serviços, você quer que os caminhos se pareçam com /categorias/tea-kettles, /categories/caffee-mugs ao invés de /blog/categories/tea-kettles e /rails-app/categories/caffee-mugs. A questão é, então, qual é a solução técnica para este desafio?

Vamos usar Nginx para resolver este problema.

 Infra-estruturas a montante {
servidor 192.0.1;
servidor 192.2.02;
...
}

servidor {
...

localização / {
proxy pass http://backends;
Tempo limite de erro proxy next upstream http 404;
}
}

onde os servidores a montante são trilhos e wordpress, nessa ordem.

Vamos tentar no anfitrião local!

E para arquivos no disco, talvez ativos estáticos, a configuração é a seguinte:

 localização / {
raiz/caminho/para/raiz;
try files $uri @fallback;
}

local @fallback {
proxy pass http://...
}

Outra solução menos preferível e não testada seria:

 localização / {
Envie 404s para B
error page 404 = @backendB;
proxy intercept errors ligado;
log not encontrado;

Tente o proxy como normal
proxy set header X-Forwarded- Para $remote addr;
proxy set header Máquina $host;
proxy set header X- Real-IP $remote addr;
proxy pass http://A;
}

localização @backendB {
Se A não funcionou, vamos tentar B.
proxy set header X-Forwarded- Para $remote addr;
proxy set header Máquina $host;
proxy set header X- Real-IP $remote addr;
proxy pass http://B;

# Qualquer 404 aqui são manuseados normalmente.
}
Please login to post comments: