AnisimovAM
@AnisimovAM
Программист

Symfony 2.8 firewall очень медленно работает. Почему?

Добрый день.
Есть проект на symfony 2.8 standard edition не использующий базу данных (без doctrine и swiftmailer). В конфиге соответственно никаких лишних настроек нет (параметры подключения к БД и так далее).

Все данные получаются из api стороннего сервиса (не спрашивайте почему тогда на симфони, а не js-фреймворке самому не нравится, но так заказчик захотел)

В prod окружении на сервере (php 7) очень долго отрабатывает firewall. В dev на локалке тоже бывает, но разница в 10 раз по времени.

Код файла app/config/security.yml
security:

    providers:
        in_memory:
            memory: ~

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:
            anonymous: true
            pattern: ^/.*
            form_login:
                always_use_default_target_path: false
                default_target_path: /
                target_path_parameter: _target_path
                use_referer: true
                login_path: user_registration_page

    access_control:
        - { path: ^/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY }
# и так далее


Принскрин из профайлера с сервера (prod)
dbb6c31b7b2c4494a8f8bcb4a84a15e3.png

Принскрин из профайлера с локалки (dev)
09d7c4f1ae614f40a30fde08f4439983.png
  • Вопрос задан
  • 373 просмотра
Решения вопроса 1
AnisimovAM
@AnisimovAM Автор вопроса
Программист
Выяснил в чем проблема была. Поставил профайлер BlackFire.io (от SensioLabs). Около 99% времени выполнялась функция curl_exec(). Полез разбираться с ним, оказалось, что запросы к api через curl (использую клиент guzzle) выполнялись иногда очень долго. Поставил флаг выполнение чезер ipv4 и все быстро заработало.

Итог - проблема не в firewall (хотя symfony web-profiler на него указывал), а в преобразовании домена в ip.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы