Hi,

I have httpd running two servers on two different ports:

    server "a" {
            listen on * port 8080
            root "/foo"
    }

    server "b" {
            listen on * port 8081
            root "/bar"
    }

/var/www/foo/ contains foo.html, and /var/www/bar/ contains bar.html.

I have relayd in front serving https, and redirecting requests to
/foo.html and /bar.html to the appropriate port:

    table <web1> { 127.0.0.1 }
    table <web2> { 127.0.0.1 }

    http protocol myremote {
            return error
            pass
            match request path "/foo.html" forward to <web1>
            match request path "/bar.html" forward to <web2>
    }

    relay example.com {
            listen on example.com port 443 tls
            protocol myremote

            forward to <web1> check tcp port 8080
            forward to <web2> check tcp port 8081
    }

If I use wget(1) to request foo.html and bar.html separately, it works:


$ wget https://example.com/foo.html; wget https://example.com/bar.html
--2018-11-14 03:16:21--  https://example.com/foo.html
Resolving example.com (example.com)... 192.168.2.15
Connecting to example.com (example.com)|192.168.2.15|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 40 [text/html]
Saving to: ‘foo.html’

foo.html            100%[===================>]      40   201 B/s    in 0.2s    

2018-11-14 03:16:21 (201 B/s) - ‘foo.html’ saved [40/40]

--2018-11-14 03:16:21--  https://example.com/bar.html
Resolving example.com (example.com)... 192.168.2.15
Connecting to example.com (example.com)|192.168.2.15|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 40 [text/html]
Saving to: ‘bar.html’

bar.html            100%[===================>]      40   206 B/s    in 0.2s    

2018-11-14 03:16:22 (206 B/s) - ‘bar.html’ saved [40/40]


However, if I make two requests from the same connection, relayd only
forwards to the first host:


$ wget https://example.com/foo.html https://example.com/bar.html
--2018-11-14 03:18:14--  https://example.com/foo.html
Resolving example.com (example.com)... 192.168.2.15
Connecting to example.com (example.com)|192.168.2.15|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 40 [text/html]
Saving to: ‘foo.html’

foo.html            100%[===================>]      40  --.-KB/s    in 0s      

2018-11-14 03:18:14 (4.24 MB/s) - ‘foo.html’ saved [40/40]

--2018-11-14 03:18:14--  https://example.com/bar.html
Reusing existing connection to example.com:443.
HTTP request sent, awaiting response... 404 Not Found
2018-11-14 03:18:14 ERROR 404: Not Found.

FINISHED --2018-11-14 03:18:14--
Total wall clock time: 0.07s
Downloaded: 1 files, 40 in 0s (4.24 MB/s)

-- 
Anthony J. Bentley

Reply via email to