Назад | Перейти на главную страницу

Список доступа haproxy с использованием path_dir имеет проблемы с firefox

Я пытаюсь перенаправить все запросы, содержащие каталог пути /socket.io/, на отдельный порт с HAProxy.

Вот мой файл конфигурации:

global
    maxconn     4096 # Total Max Connections. This is dependent on ulimit
    nbproc      2

defaults
    mode        http

frontend all 0.0.0.0:80
    timeout client 86400000
    default_backend web_servers
        acl is_stream path_dir socket.io
    use_backend stream_servers if is_stream

backend web_servers
    balance roundrobin
    option forwardfor # This sets X-Forwarded-For
    timeout server 30000
    timeout connect 4000
    server web1 127.0.0.1:4000 weight 1 maxconn 1024 check

backend stream_servers
    balance roundrobin
    option forwardfor # This sets X-Forwarded-For
    timeout queue 5000
    timeout server 86400000
    timeout connect 86400000
    server stream1 127.0.0.1:5100 weight 1 maxconn 1024 check

Пути URL с /socket.io/ правильно направляются на порт 5100 в Chrome и Safari. Однако не для firefox.

Я запускаю Haproxy локально на своем Mac для разработчиков, не уверен, имеет ли это какое-либо отношение к этому.

Я использую haproxy 1.4.8 и Firefox 3.6.15.

Я пробовал очистить кеш в firefox, и это не помогло, поэтому я думаю, что что-то не так с тем, как HAProxy анализирует заголовки запросов Firefox.

Скорее всего, это просто потому, что с этим конфигом анализируется только первый запрос соединения, а остальные просто туннелируются на сервер. Включение журналов покажет это. Просто добавьте "option http-server-close" в раздел настроек по умолчанию, и он должен работать. А также, пожалуйста, удалите "nbproc 2". Это только усложняет отладку и ничего вам не принесет.