HAProxy Url pattern forwarding

As your path is contained to the start of the URL why not use path_beg, the recommended use for path_end is for file name extensions.

        acl is_small path_beg -i /small
        acl is_medium path_beg -i /medium
        acl is_large path_beg -i /large

The path of a HTTP request is always handed to the backend server, i.e.

GET /small HTTP/1.1

will be visible behind HAproxy as just that request. If you suspect that this somehow is truncated to

GET / HTTP/1.1

on the server behind HAproxy, you should check for this using

tcpdump -i any port 8080 -As1024 | grep GET

on that server and watch the inbound GET requests.

I'm going on a limb and assume that you expect HAproxy to insert something in the front of the URI, like

    server web_1 192.168.5.14:8080/my/path check

would turn a request for /small into a request for /my/path/small. This can be achieved by using the reqrep option, see the documentation for details.