Hi.
On 12.08.22 14:48, Eric Johanson wrote:
Thanks for the reply. It sounds like for my situation, I want to add some CORS headers when
fc_err > 0 perhaps using the "set-header" action of http-response. (Your
example uses the set-status action, which I don't think solves my problem of generating CORS
headers for internal HAProxy connection errors).
https://docs.haproxy.org/2.6/configuration.html#4.2-http-response%20add-header
So maybe something like:
http-response add-header Access-Control-Allow-Origin "https://example.com" if
fc_err gt 0
# ... more like this for the other required CORS headers
I haven't tried this, but does it some like it will accomplish what I described
in my original post?
I would say give it a try and see if works.
Regards
Alex
-----Original Message-----
From: Aleksandar Lazic <[email protected]>
Sent: Friday, August 12, 2022 6:45 AM
To: Eric Johanson <[email protected]>
Cc: [email protected]
Subject: Re: Sending CORS headers with HAProxy-generated error responses
Hi Eric.
On 11.08.22 21:59, Eric Johanson wrote:
When HAProxy generates an HTTP 500 error (say because our servers are
down), then HAProxy does not send any CORS information. Because of
this, the HTTP 500 responses do not arrive at our web application because they
are blocked by the browser.
To solve this, I want to add the relavent CORS headers to these
HAProxy-generated error responses. And I want to add CORS headers
ONLY to such error responses (the error pages specified by the
"errorfile" directive in the haproxy.cfg file). Our middleware server
already adds appropriate CORS headers for all responses that come from our
middleware, including error responses that come from our middleware. But when
HAProxy sends an error response that it generates internally, there are no CORS
headers.
I see there are various solutions for adding CORS headers to all HTTP traffic
from front-ends (e.g.
https://github.com/haproxytech/haproxy-lua-cors). But I want to add
CORS headers ONLY to the internal HAProxy-generated error responses.
Is there a way to do this, and if so how?
Well I'm not sure if it's possible but I would try to use fc_err and set
errorfile.
https://docs.haproxy.org/2.6/configuration.html#7.3.3-fc_err
https://docs.haproxy.org/2.6/configuration.html#3.8
Example, untested.
http-response set-status [1] 500 if fc_err gt 0
Which error is the right one can be seen here
https://docs.haproxy.org/2.6/configuration.html#7.3.3-fc_err_str
Jm2c
Regards
Alex
Thank you.
Confidentiality Notice: The information in this email is confidential. It is
intended only for the use of the named recipient. Any use or disclosure of this
email is strictly prohibited, if you are not the intended recipient. In case
you have received this email in error, please notify us immediately and then
delete this email. To help reduce unnecessary paper wastage, we would request
that you do not print this email unless it is really necessary - thank you.
Confidentiality Notice: The information in this email is confidential. It is
intended only for the use of the named recipient. Any use or disclosure of this
email is strictly prohibited, if you are not the intended recipient. In case
you have received this email in error, please notify us immediately and then
delete this email. To help reduce unnecessary paper wastage, we would request
that you do not print this email unless it is really necessary - thank you.
Confidentiality Notice: The information in this email is confidential. It is
intended only for the use of the named recipient. Any use or disclosure of this
email is strictly prohibited, if you are not the intended recipient. In case
you have received this email in error, please notify us immediately and then
delete this email. To help reduce unnecessary paper wastage, we would request
that you do not print this email unless it is really necessary - thank you.