Re: apache proxy pass rules in HAproxy

2018-10-26 Thread Imam Toufique
Hi Igor, Thanks very much for offering to help! I will do this in sections, hopefully, I can keep this from being too cluttered. haproxy.cfg: -- global #log /dev/log local0 debug #log /dev/log local1 debug

Re: apache proxy pass rules in HAproxy

2018-10-26 Thread Igor Cicimov
Hi Imam, On Sat, Oct 27, 2018 at 9:37 AM Imam Toufique wrote: > Hi, > > I came up with the following config, things seem to be working now, for > the most part. > > frontend http_front >bind :80 >bind 0.0.0.0:443 ssl crt /etc/haproxy/crsplab2_1.pem >stats uri /haproxy?stats >defa

Re: apache proxy pass rules in HAproxy

2018-10-26 Thread Imam Toufique
Hi, I came up with the following config, things seem to be working now, for the most part. frontend http_front bind :80 bind 0.0.0.0:443 ssl crt /etc/haproxy/crsplab2_1.pem stats uri /haproxy?stats default_backend web1_cluster option httplog log global #option dontlognull

design proposal: lua-agent-check

2018-10-26 Thread Robin H. Johnson
As a followup to the http-agent-check design idea, I wondered if implementing a general-case lua-agent-check mode would be beneficial. lua-agent-check keyword would take one parameter, the name of a function that can be called to determine the health of a server. The finer details about the desig

Design Proposal: http-agent-check, explict health checks & inline-mode

2018-10-26 Thread Robin H. Johnson
Hi, This is something I have a vague recollection of existing somewhere, but didn't find any leads in documentation or source. Right now, if you want to use load feedback for weights, you either need something entirely out-of-band from the servers back to HAProxy, or you have to use the agent-che

Re: Lots of PR state failed connections with HTTP/2 on HAProxy 1.8.14

2018-10-26 Thread James Brown
Y'all are quite right: one of the machines inverted the order of restarting with the new config and updating the package and was advertising the h2 ALPN with HAProxy 1.7.11. Sorry to take up so much time with a silly question. Cheers! On Wed, Oct 24, 2018 at 12:21 AM Aleksandar Lazic wrote: >

Re: CLI proxy for master process

2018-10-26 Thread Willy Tarreau
On Fri, Oct 26, 2018 at 05:58:43PM +0200, Aleksandar Lazic wrote: > BTW what's nb in "nb(thread|proc)"? > > [ ] No block > [ ] never been > [ ] real answer, something in french ;-): "NumBer" :-) This one is not derived from french, it's not like "option independant-streams" which I messed up yea

Re: CLI proxy for master process

2018-10-26 Thread William Lallemand
On Fri, Oct 26, 2018 at 05:58:43PM +0200, Aleksandar Lazic wrote: > BTW what's nb in "nb(thread|proc)"? > > [ ] No block > [ ] never been > [ ] real answer, something in french ;-): [X] number :-) -- William Lallemand

Re: CLI proxy for master process

2018-10-26 Thread Willy Tarreau
On Fri, Oct 26, 2018 at 05:41:12PM +0200, William Lallemand wrote: > The problem is that at the moment it's not possible to connect to the stats > socket of a process which is leaving. Sometimes it's really useful to debug > and > see the session which are still connected on the old process. And t

Re: CLI proxy for master process

2018-10-26 Thread Aleksandar Lazic
Hi, William. Am 26.10.2018 um 17:41 schrieb William Lallemand: > On Fri, Oct 26, 2018 at 05:13:00PM +0200, Aleksandar Lazic wrote: >> Hi William. >> >> Sorry for my lack of knowledge and my curiosity, you know I'm always curious >> ;-), but for which usecase can I use this feature? >> >> Best rega

Re: CLI proxy for master process

2018-10-26 Thread William Lallemand
On Fri, Oct 26, 2018 at 05:13:00PM +0200, Aleksandar Lazic wrote: > Hi William. > > Sorry for my lack of knowledge and my curiosity, you know I'm always curious > ;-), but for which usecase can I use this feature? > > Best regards. > > Aleks > > Hi Aleks, With a nbproc setup, the first goal

Re:

2018-10-26 Thread Aleksandar Lazic
Hi William. Sorry for my lack of knowledge and my curiosity, you know I'm always curious ;-), but for which usecase can I use this feature? Best regards. Aleks Ursprüngliche Nachricht Von: William Lallemand Gesendet: 26. Oktober 2018 14:47:28 MESZ An: haproxy@formilux.org C

AW: Client Timeout - undeterministic behaviour with tcp frontends

2018-10-26 Thread Sven Buesing
Hi All, any thoughts on this one? Regards, Sven -Ursprüngliche Nachricht- Von: Sven Buesing Gesendet: Mittwoch, 19. September 2018 18:29 An: 'haproxy@formilux.org' Betreff: Client Timeout - undeterministic behaviour with tcp frontends Hi All, I think we stumbled over a bug in haproxy

Re: [PATCH] MINOR: cache: Add "Age" header.

2018-10-26 Thread Frederic Lecaille
On 10/26/2018 02:52 PM, Frederic Lecaille wrote: Hello, Here is a patch to handle the "Age" header for the cache. Everything is in the commit log. Here is a better patch with this diff between this latter one and the previous one: @@ -52,7 +52,7 @@ + age = 0; + ctx.idx = 0; +

CLI proxy for master process

2018-10-26 Thread William Lallemand
This patch series implements a CLI on the master process. It's a work in progress but it is now in a usable state, so people might be interessed in testing it. The CLI on the master is organized this way: * The master process implements a CLI proxy which contains: - a listener for each

[PATCH] MINOR: cache: Add "Age" header.

2018-10-26 Thread Frederic Lecaille
Hello, Here is a patch to handle the "Age" header for the cache. Everything is in the commit log. Regards, Fred. >From af5156e33de0a5a2f278cd6b8834e834c5401b35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Fri, 26 Oct 2018 14:29:22 +0200 Subject: [PATCH] M

[PATCH 09/20] MEDIUM: cli: disable some keywords in the master

2018-10-26 Thread William Lallemand
The master process does not need all the keywords of the cli, add 2 flags to chose which keyword to use. It might be useful to activate some of them in a debug mode later... --- include/types/cli.h| 1 + include/types/global.h | 2 ++ src/cli.c | 22 ++ 3 fi

[PATCH 15/20] MINOR: cli: put @master @ @! in the help

2018-10-26 Thread William Lallemand
Add help for the prefix command of the CLI. These help only displays from the CLI of the master. --- src/cli.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cli.c b/src/cli.c index 8291b2d7a..d8ae79d7b 100644 --- a/src/cli.c +++ b/src/cli.c @@ -2319,6 +2319,9 @@ static struct applet c

[PATCH 20/20] MINOR: cli: helper to write an response message and close

2018-10-26 Thread William Lallemand
pcli_reply_and_close() writes a message to the client and close the connection. To be used only in the CLI proxy. --- src/cli.c | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/cli.c b/src/cli.c index 1a4a92c0e..67741a631 100644 --- a/src/cli.c +++ b/src/cli.c @@ -

[PATCH 03/20] REORG: mworker: move struct mworker_proc to global.h

2018-10-26 Thread William Lallemand
Move the definition of the mworker_proc structure in types/global.h. --- include/types/global.h | 11 +++ src/haproxy.c | 10 -- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/include/types/global.h b/include/types/global.h index 5262867df..201a18a15 1006

[PATCH 01/20] MINOR: mworker: number of reload in the life of a worker

2018-10-26 Thread William Lallemand
This patch adds a field in the mworker_proc structure which contains how much time the master reloaded during the life of a worker. --- src/haproxy.c | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/haproxy.c b/src/haproxy.c index 82da86222..539eaeea4 100644 --- a/s

[PATCH 06/20] MEDIUM: mworker: add proc_list in global.h

2018-10-26 Thread William Lallemand
Add the process list in types/global.h so it could be accessed from anywhere. --- include/types/global.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/types/global.h b/include/types/global.h index 201a18a15..66ae6da83 100644 --- a/include/types/global.h +++ b/include/types/global.h @

[no subject]

2018-10-26 Thread William Lallemand
From: William Lallemand Subject: CLI proxy for master process In-Reply-To: This patch series implements a CLI on the master process. It's a work in progress but it is now in a usable state, so people might be interessed in testing it. The CLI on the master is organized this way: * The mast

[PATCH 12/20] MEDIUM: cli: implement 'mode cli' proxy analyzers

2018-10-26 Thread William Lallemand
This patch implements analysers for parsing the CLI and extra features for the master's CLI. For each command (sent alone, or separated by ; or \n) the request analyser will determine to which server it should send the request. The 'mode cli' proxy is able to parse a prefix for each command which

[PATCH 17/20] MEDIUM: mworker: stop the master proxy in the workers

2018-10-26 Thread William Lallemand
The master proxy which handles the CLI should not be used or shown in the stats of the workers. This proxy is now disabled after the fork. --- include/proto/cli.h | 3 +++ src/cli.c | 8 src/haproxy.c | 2 ++ 3 files changed, 13 insertions(+) diff --git a/include/proto/cl

[PATCH 16/20] MEDIUM: listeners: set O_CLOEXEC on the accepted FDs

2018-10-26 Thread William Lallemand
Set the O_CLOEXEC flag on the accept, useful to avoid an FD leak in the master process, since it reexecutes itself during a reload --- src/listener.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/listener.c b/src/listener.c index fb2306927..a730b1832 100644 --- a/sr

[PATCH 14/20] MEDIUM: cli: enable "show cli sockets" for the master

2018-10-26 Thread William Lallemand
Enable the keyword on the master CLI. --- src/cli.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cli.c b/src/cli.c index ed5de6c09..8291b2d7a 100644 --- a/src/cli.c +++ b/src/cli.c @@ -2327,7 +2327,7 @@ static struct cli_kw_list cli_kws = {{ },{ { { "set", "sever

[PATCH 19/20] MEDIUM: cli: write a prompt for the CLI proxy of the master

2018-10-26 Thread William Lallemand
Write a prompt with the PID of the target or master. It's always activated for now. Example: 1234> master> --- src/cli.c | 16 +++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/cli.c b/src/cli.c index f5935693f..1a4a92c0e 100644 --- a/src/cli.c +++ b/src/c

[PATCH 04/20] MINOR: server: export new_server() function

2018-10-26 Thread William Lallemand
The new_server() function will be useful to create a proxy for the master-worker. --- include/proto/server.h | 1 + src/server.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/proto/server.h b/include/proto/server.h index 1c2d1fdaf..75cba471c 100644 --- a/i

[PATCH 07/20] MEDIUM: mworker: proxy for the master CLI

2018-10-26 Thread William Lallemand
This patch implements a listen proxy within the master. It uses the sockpair of all the workers as servers. In the current state of the code, the proxy is only doing round robin on the CLI of the workers. A CLI mode will be needed to know to which CLI send the requests. --- include/proto/cli.h |

[PATCH 08/20] MEDIUM: mworker: create CLI listeners from argv[]

2018-10-26 Thread William Lallemand
This patch introduces mworker_cli_proxy_new_listener() which allows the creation of new listeners for the CLI proxy. Using this function it is possible to create new listeners from the program arguments with -Sa . It is allowed to create multiple listeners with several -Sa. --- include/proto/cli.

[PATCH 18/20] MEDIUM: channel: reorder the channel analyzers for the cli

2018-10-26 Thread William Lallemand
Reorder the channel analyzers so the CLI analyzers are defined before the XFER_DATA ones. --- include/types/channel.h | 48 +--- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/include/types/channel.h b/include/types/channel.h index 3fb49

[PATCH 11/20] MEDIUM: cli: 'show proc' displays processus

2018-10-26 Thread William Lallemand
This patch implements a command which displays the current processes. It only works in the CLI of the master. --- src/cli.c | 30 ++ 1 file changed, 30 insertions(+) diff --git a/src/cli.c b/src/cli.c index a6e0648c2..2d4d1281c 100644 --- a/src/cli.c +++ b/src/cli.c @

[PATCH 10/20] MEDIUM: mworker: find the server ptr using a CLI prefix

2018-10-26 Thread William Lallemand
Add a struct server pointer in the mworker_proc struct so we can easily use it as a target for the mworker proxy. pcli_prefix_to_pid() is used to find the right PID of the worker when using a prefix in the CLI. (@master, @# , @) pcli_pid_to_server() is used to find the right target server for the

[PATCH 13/20] MINOR: cli: displays sockpair@ in "show cli sockets"

2018-10-26 Thread William Lallemand
The 'show cli sockets' was not handling the sockpairs, it now displays the fd of the socket and also show the unknown protocols. --- src/cli.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cli.c b/src/cli.c index f1d22a489..ed5de6c09 100644 --- a/src/cli.c +++ b/src/cl

[PATCH 05/20] MEDIUM: mworker: move proc_list gen before proxies startup

2018-10-26 Thread William Lallemand
We need to generate the process list before starting the proxies, because it will be used to create a proxy in the master --- src/haproxy.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/haproxy.c b/src/haproxy.c index d5c55e172..e46690432 100644 --- a/src/haproxy.c +++

[PATCH 02/20] MEDIUM: mworker: each worker socketpair is a CLI listener

2018-10-26 Thread William Lallemand
The init code of the mworker_proc structs has been moved before the init of the listeners. Each socketpair is now connected to a CLI within the workers, which allows the master to access their CLI. The inherited flag of the worker side socketpair is removed so the socket can be closed in the mast