Hi,
I'm trying to replace my nginx setup with httpd + relayd.
I want to use relayd for virtual hosts and "TLS acceleration".

I have trouble with my Radicale CalDAV service. Radicale listens on localhost port 5232. relayd forwards the connection correctly until the client issues an http PROPFIND request. At that point relayd returns 500 Internal server error. It seems relayd is not happy with webdav requests.
Is there a way to tell it to transparently forward unknown requests?

Here's my old nginx config:
% cat /etc/nginx/sites/radicale.conf
server {
  listen 443;
  server_name radicale.my.domain;

  ssl on;
  ssl_certificate /etc/nginx/certs/radicale.crt;
  ssl_certificate_key /etc/nginx/certs/radicale.key;

  location / {
    proxy_pass        http://127.0.0.1:5232;
  }
}

Here's the replacement relayd config:
% cat /etc/relayd.conf
table <main>     { 127.0.0.1 }
table <radicale> { 127.0.0.1 }

hostradicale="radicale.my.domain"

log updates

# Protocols
http protocol "tlsvhosts" {
    return error
    pass

    match request header "Host" value $hostradicale forward to <radicale>
}

# Relay rules
relay tlsaccel {
    listen on egress port 443 tls
    protocol "tlsvhosts"

    forward to <main> port 80 check tcp
    forward to <radicale> port 5232 check tcp
}

Reply via email to