Let’s say I have a domain called mysite.com

mysite.com points to a server which only opens port 443, and each connection will need to go through that and deal with Caddy reverse proxy.

I want to host more services on it.

Let’s say I want to host an email service, the easiest thing would be using a subdomain such as mail.mysite.com and reverse proxy each connection to the internal port on which the service run.

Same with a chat service chat.mysite.com.

But for the sake of readability it would be much better to simply have username@mysite.com than username@mail.mysite.com or username@chat.mysite.com.

reverse proxying every request from a subdomain to the right port is pretty straightforward with Caddy, also if you use cloudflare you can proxy with cloudflare each subdomain and have auto SSL certificate without further set up, which is amazing!

But what if I do want my services to be accessed through mysite.com directly instead of a specific per-service subdomain?

Some federated services also have two separate ports for server requests and client requests, which further complicates the process…

Is this service specific and must configured individually for each service? Or there is a way to tell caddy that a specific request going through mysite.com should be redirected through port X.X.X.X? Is there a way Caddy can recognize where requests need to be directed?

  • SethranKada@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 days ago

    It can be done, but only if the service your trying to use makes all of its requests using a specific port. There’s no way to do it with a reverse proxy to my knowledge though. I’ve got both my email and my blog at myname.tld, for example. I just had to configure both of them with DNS.

    If what your trying to do is have all requests for one port be directed to another port… your out of luck. I’ve been trying for ages to have nginx forward all 443 traffic on proxy.mynane.tld to 30018 and 80 traffic on proxy.myname.tld to 30024 but no luck so far.

    • BillibusMaximus@sh.itjust.works
      link
      fedilink
      arrow-up
      3
      ·
      3 days ago

      If you’ve been trying for a while and still haven’t gotten it working, then I’m probably missing something regarding your requirements.

      But at first glance, it seems like it would be solved with 2 server blocks, 1 for 80, 1 for 443, each with their own proxy config passing / to their respective target ports.