Henrik,
Regarding cut off responses, I didn't have such problems, maybe it was fixed
since 2016.
Regarding multi-site setup, I have something like this:
--- httpd.conf ---
### default site behind relayd
server "waste.tristero.se" {
alias "tristero.se"
listen on 127.0.0.1 port 80
listen on ::1 port 80
root "/htdocs/waste.tristero.se"
}
server "openbsd.tristero.se" {
listen on 127.0.0.1 port 80
listen on ::1 port 80
root "/htdocs/openbsd.tristero.se"
}
### this one is not behind relayd, used for http to https redirection
server "waste.tristero.se" {
alias "openbsd.tristero.se"
alias "tristero.se"
listen on 188.244.46.111 port 80
listen on 2001:470:1f15:1492::2 port 80
root "/htdocs/waste.tristero.se"
block return 301 "https://$HTTP_HOST/$DOCUMENT_URI"
}
--- relayd.conf ---
ext4="188.244.46.111"
ext6="2001:470:1f15:1492::2"
localhost4="127.0.0.1"
localhost6="::1"
table <openbsd4> { $localhost4 }
table <openbsd6> { $localhost6 }
table <waste4> { $localhost4 }
table <waste6> { $localhost6 }
http protocol "https4" {
match request header set "X-Forwarded-For" value "$REMOTE_ADDR"
match request header set "X-Forwarded-By" value "[$SERVER_ADDR]:$SERVER_PORT"
match request header "Host" value "tristero.se" forward to <waste4>
match request header "Host" value "waste.tristero.se" forward to <waste4>
match request header "Host" value "openbsd.tristero.se" forward to <openbsd4>
tls { no tlsv1.0, ciphers EECDH+AESGCM:EECDH+CHACHA20:EECDH+SHA256:EECDH+SHA384:ECDHE+SHA256 }
}
http protocol "https6" {
match request header set "X-Forwarded-For" value "$REMOTE_ADDR"
match request header set "X-Forwarded-By" value "[$SERVER_ADDR]:$SERVER_PORT"
match request header "Host" value "tristero.se" forward to <waste6>
match request header "Host" value "waste.tristero.se" forward to <waste6>
match request header "Host" value "openbsd.tristero.se" forward to <openbsd6>
tls { no tlsv1.0, ciphers EECDH+AESGCM:EECDH+CHACHA20:EECDH+SHA256:EECDH+SHA384:ECDHE+SHA256 }
}
relay "https4" {
listen on $ext4 port 443 tls
protocol "https4"
forward to <openbsd4> port 80
forward to <waste4> port 80
}
relay "https6" {
listen on $ext6 port 443 tls
protocol "https6"
forward to <openbsd6> port 80
forward to <waste6> port 80
}
--- end cut ---
The only problem I have was configuring specific security headers for
specific hosts, i.e. I cannot have specific http protocol sections with
different responses for specific hosts, like:
http protocol "https4-flex" {
match request header "Host" value "not-secure.domain" forward to <backend-site1>
match response header set "Content-Security-Policy" value "<flex-policy-rules-follow>"
}
http protocol "https4-strict" {
match request header "Host" value "secure.domain" forward to <backend-site2>
match response header set "Content-Security-Policy" value "<strict-policy-rules-follow>"
}
--
With best regards,
Pavel Korovin
Post by Henrik FriedrichsenSo far I have not been able to emulate proxy_pass with relayd.
- relayed HTTP requests resulted in cut off responses, similar to this
issue: https://github.com/reyk/relayd/issues/12
- I have not been able to come up with a configuration/filter setting
that will only match for a specific subdomain and will pass the
non-matching requests to the regular httpd listening on port 80
Did anyone have success in setting this up?