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