为什么haproxy path_beg只有在我不访问默认站点时才有效?

Jes*_*sse 6 apache haproxy

我已将haproxy配置为将路径"/ rawman"重定向到我的服务器上的端口8080.它第一次工作,但是一旦我访问默认站点,它就会停止工作.默认站点在带有mod_rewrite的apache上运行,并且它正在捕获无效请求(使用codeigniter),因此当我访问http://mysite.com/rawman?foo=bar时,我没有看到重定向的站点,而是看到了默认站点.

This is my haproxy config:

    global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        maxconn 4096
        user haproxy
        group haproxy
        daemon
defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        option redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

frontend http_proxy
        bind 0.0.0.0:8090
        acl is_ast path_beg /rawman
        use_backend ast if is_ast
        default_backend mysite

backend ast
        server ast 0.0.0.0:8080

backend mysite
        server local 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)

Fem*_*emi 30

尝试在线option httpclose后设置srvtimeout.

如果你不这样做,那么haproxy使用目标服务器的keepalive设置.一旦你访问主站点,连接就会被打开并保持打开状态,并且在你的下一个请求中,haproxy会不会那么好哦:我有一个开放的连接.让我们使用它,即使它不应该使用它.设置httpclose选项后,它始终会关闭连接,确保每个新请求都使用正确的连接.

失去了我生命中的3个小时.