![Nginx Обратный прокси-сервер, исключающий файлы](https://rvso.com/image/770257/Nginx%20%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D0%B9%20%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%2C%20%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D1%8E%D1%89%D0%B8%D0%B9%20%D1%84%D0%B0%D0%B9%D0%BB%D1%8B.png)
У меня есть целевая страница, созданная с помощью WordPress и размещенная на example.com. У меня есть приложение, работающее на app.example.com на внешнем URL. Когда пользователь пытается получить доступ к файлам WordPress, он должен быть обслужен с example.com, и если этот URL или папка недоступны, URL должен быть замаскирован и должен вести на удаленный URL как example.com/$1. Я пробовал использовать обратный прокси nginx, но он не работает.
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;
}
решение1
Проверяет try_files
только, существуют ли реальные файлы в файловой системе. Как только он находит существующий файл, он использует его для обслуживания ответа. try_files
не действует ни на какие коды статуса HTTP.
Поскольку у вас всегда есть /index.php
в файловой системе, @proxy
цель никогда не используется.
Вам необходимо реализовать функционал, подключившись к хуку генерации ошибки 404 в WordPress и выполнив проксирование там.