Tengo una página de destino creada con WordPress y está alojada en example.com. Tengo una aplicación ejecutándose en app.example.com en una URL externa. Cuando el usuario intenta acceder a archivos de WordPress, debe ser servido desde example.com y si esa URL o carpeta no está disponible, la URL debe estar enmascarada y debe ir a la URL remota como example.com/$1. Intenté usar el proxy inverso nginx pero no funciona.
location / {
try_files $uri $uri/ /index.php?$query_string @proxy;
}
location @proxy {
proxy_pass https://example.com/$1;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Respuesta1
La try_files
única comprobación es si existen archivos reales en el sistema de archivos. Una vez que encuentra un archivo que existe, lo utiliza para dar una respuesta. try_files
no actúa sobre ningún código de estado HTTP.
Como siempre lo tiene /index.php
en su sistema de archivos, el @proxy
objetivo nunca se utiliza.
Debe implementar la funcionalidad conectándose al enlace de generación de errores 404 de WordPress y realizando el proxy allí.