Integrate Caddy w/ HttpHandler & Mux?


(Basile Alex) #1

Hi, I’m a newbie.
I’m trying to figure out how to add HttpHandlers to my running Caddy.

http.Handle("/foo", fooHandler)
log.Fatal(http.ListenAndServe(":8080", nil))

I’m assuming I need to integrate w/ the caddy instance below
instance, err := caddy.Start(caddyfile)

At first I thought I could configure in caddyFile, but didn’t find any examples.
Thinking it’s probably using good old net/http package together w/ caddy instance.

Appreciate any advice and examples!


(Basile Alex) #2

Found this sample using routing but doesn’t show how to setup rules.
Maybe have some better examples, that are easier to learn from?


(Matthew Fay) #3

Hi @Basile_Alex, welcome to the Caddy community.

Looks like you’re trying to extend Caddy with middleware! You can find the documentation on how to do that here: https://github.com/mholt/caddy/wiki/Extending-Caddy

Give that wiki page a read and look further into the pages for Directives and HTTP Middleware, which outline the methods used by the header code you linked.

I should note that Caddy doesn’t use or directly integrate with another net/http server, though. Depending on what your server does, instead of extending with middleware, you could run your Caddy instance with a proxy directive to your own server listening on a local port.


(Basile Alex) #4

Thanks Whitestrake. I will proxy instead