2015-12-04 6 views
0

Я разрабатываю веб-сайт с высоким трафиком/высоко-seo-focus. Теперь мы делаем redirects только в начале действий, но это немного медленно.Перенаправление до маршрутизации Symfony2

Есть ли способ до крюка перед маршрутизацией и сделать там переадресацию (у нас есть запрос Redis, чтобы узнать, является ли URL-адрес 301 или нет)? Может быть, путь делает это перед даже Symfony.

+0

вы можете сделать это в вашем index.php (или app_dev.php или app.php)? вам не нужно загружать Symfony для этого. –

ответ

0

Конечно, вы можете, создать приемник с приоритетом выше, чем 32 (который является приоритетом маршрутизатора слушателя), а затем перенаправить оттуда:

$response = new RedirectResponse($url);

$event->setResponse($response);

0

Вам действительно нужно предоставить гораздо больше информации, есть несколько вещей, которые я вижу.

Прежде всего, пожалуйста, прокомментируйте свое приложение, есть очень хороший инструмент Blackfire, созданный той же компанией, что и Symfony. С этим вы можете точно определить, где узкое место производительности, без него, мы можем только догадываться, например.

Может быть, запрос занимает слишком много времени, если это так, то оптимизируйте его.

Не может быть сетевой латентностью? Возможно, у вас есть кластер серверов, где пользователь выполняет поиск DNS, который обращается к серверу, а затем перенаправляет его на другой сайт, что приводит к другому поиску DNS на сервере в Европе или что-то в этом роде.

Наконец-то это может быть Symfony и Php? В этом случае я бы рекомендовал смотреть на подключения веб-сервер непосредственно Redis, например Nginx или лак, например

https://github.com/openresty/redis2-nginx-module#readme

и

https://www.varnish-cache.org/vmod/redis

Смежные вопросы