Я пытаюсь установить глобальный префикс для приложения symfony для запуска приложения за обратным прокси.
URL-адрес прокси-сервера: http://proxy.example.de/ski
Локатон / лыжи вызывают проблемы.
Я использую Symfony 4, конфигурация, указанная в документации, не работает:
parameters:
router.request_context.host: www.fakedomain.com
router.request_context.scheme: http
router.request_context.base_url: fakedirectory
Приложение работает на apache, прокси тоже apache. Я попытался установить route_prefix в annotation.yaml, который не решает проблему с активом и вызывал другие проблемы.
Заранее спасибо.
Редактировать: Пример маршрута контроллера
class DashboardController extends AbstractController
{
/**
* @Route("/", name = "dashboard")
*
* @param EntityManagerInterface $em
* @return \Symfony\Component\HttpFoundation\Response
*/
public function index(EntityManagerInterface $em)
Что ты имеешь в виду ? Маршруты создаются с помощью аннотаций внутри контроллера.
тогда мы можем увидеть контроллер? :)
Конечно, но я сомневаюсь, что в этом проблема. Как я уже сказал, я мог бы установить глобальный префикс в annotations.yaml, и это решило бы проблему маршрутизации. Но тогда у меня все еще возникают проблемы с моими активами. Я добавил маршрут в свой пост.
/ski - это не маршрут? в чем собственно ошибка? 404?
/ ski - это расположение на прокси. Symfony считает это параметром, а proxy.example.de - базовым путем. Но base_url / путь приложения будет proxy.example.de/ski.
это приложение в приложении? или конечный пользователь всегда будет переходить на proxy.example.de/ski?
Это единое приложение. Мы просто используем обратный прокси-сервер для размещения нескольких приложений (symfony, springboot, python) под одним и тем же URL-адресом, например «portal.example.de». Затем это адреса / application1, / application2, / ski. Итак, для моего приложения Symfony корнем контекста всегда является proxy.example.de/ski
тогда почему бы не установить корень документа как /ski? Если сайт всегда будет работать через /ski/*, тогда просто установите базовый URL как таковой?
Что значит где ставить? На прокси, хосте или в приложении? Если это рабочее решение, я бы с удовольствием это сделал :-)
Так же, как и приложение, маршрут вашей панели управления будет /ski - тогда все, что находится после, может использовать {ski}/* в качестве URL-адреса и установить значения по умолчанию для лыж на /ski.
Я уже пробовал это. Это похоже на установку префикса с / ski для всех маршрутов. Тогда у меня все еще есть проблема с моими активами.
но если задан documentroot, то он идет из / public no?
Думаю, я тебя неправильно понял. Не могли бы вы объяснить, что вы имели в виду, устанавливая корень документа на лыжу?
Итак, в вашем файле vhost / nginx conf - вы должны установить корень документа как example.com/ski, тогда вы можете просто использовать это - в качестве альтернативы вы можете использовать маршрутизацию, чтобы установить все на /ski, тогда ваша общая папка не является проблемой, потому что URL-адрес будет по-прежнему читать /public/* как общедоступную папку Assest
Я не могу заставить работать корневое решение документа. Если я установил что-нибудь еще, то URL-адрес общей папки (/ var / www / sf4 / public) ничего не нашел. Есть идеи, что я делаю не так?
Любое решение? У меня та же проблема. symfony-app1 слушает x.x.x.x:7071/, а symfony-app2 слушает x.x.x.x:7072/ - я использую caddyserver для маршрутизации example.com:443/app1 на один сервер и example.com:443/app2 на другой. С помощью директивы without для caddy я могу перейти на нужную страницу в symfony. Например, /app1 конвертируется в /, а app1/someThing запрашивается как /someThing. Но если приложение 1 отвечает ссылкой на /someThing, я все равно не могу преобразовать его обратно в /app1/someThing после ответа обратного прокси.






Какая у вас маршрутизация?