I was about going against as well for monitor-* keywords for now. There are no "simple" way to replace them currently and te 'return' thing will be the simple way.
Note that you can use a Lua service for this purpose currently, but it's not as simple as having a single small directive in an HAProxy config file. Baptiste On Tue, Oct 29, 2019 at 4:34 AM Willy Tarreau <[email protected]> wrote: > On Tue, Oct 29, 2019 at 12:40:52AM +0100, Aleksandar Lazic wrote: > > > Or maybe something like: > > > http-request deny deny_status 500 if { path_beg /health } { > nbsrv(yourbackend) lt 1 } > > > http-request deny deny_status 200 if { path_beg /health } > > > > Looks good but 'deny' and '200' feels wrong. > > > > Maybe we should have a 'http-request monitor ...' which replaces the > monitor* stuff? > > Well, guys you convinced me for monitor-uri. We still don't have the > "return" directive which would have been more suitable for this, but > in any case I agree that transcoding the monitor-fail rules to anything > else will be painful. > > Also, the code dealing with monitor-uri isn't the ugliest one as it's > still handled by the streams and could be converted to HTX lately. It's > just that seeing it being tested in the CLI code irritates me a little > bit. > > However, for "mode health" and "monitor-net", it's another story and > these ones cannot work in SSL nor with muxes :-/ > > To give you an idea, this is what we have in the FD accept code : > > if (p->mode == PR_MODE_HTTP || > (p->mode == PR_MODE_HEALTH && (p->options2 & PR_O2_CHK_ANY) == > PR_O2_HTTP_CHK)) > send(cfd, "HTTP/1.0 200 OK\r\n\r\n", 19, > MSG_DONTWAIT|MSG_NOSIGNAL|MSG_MORE); > else if (p->mode == PR_MODE_HEALTH) > send(cfd, "OK\n", 3, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_MORE); > > Sending these ones raw on the socket with SSL or H2 makes no sense, and > I'd rather stop hacking the socket at this level. That's why I'm really > impatient to drop these ones. > > Thanks, > Willy > >

