gpt4 book ai didi

https - X-Forwarded-Proto https 在前端还是后端(HAProxy)?

转载 作者:行者123 更新时间:2023-12-04 06:14:41 25 4
gpt4 key购买 nike

我已经在我的后端服务器应用程序前面设置了一个 HAProxy 来启用 HTTPS。我读过我需要设置X-Forward-Proto https .

haproxy.cfg 我尝试在 中执行此操作的文件前端和:

frontend haproxy
bind :8443 ssl crt frontend/server.pem
reqadd X-Forwarded-Proto:\ https
default_backend my-backend

这似乎使它起作用-例如我既可以登录到我的后端服务器,也可以导航到不同的页面。如果我没有 proto 选项,我只能登录但不能导航到任何其他页面。

现在我如果在 中添加选项后台而是(从前端删除它):
backend my-backend
http-request add-header X-Forwarded-Proto https if { ssl_fc }
server my-backend 127.0.0.1:9000

它也有效,我可以在我的后端服务器应用程序中导航不同的页面。

那么哪种方法是正确的呢?在前端还是在后端,还是没关系?

最佳答案

没关系。当您有多个后端时,通常在前端执行此操作是有意义的。

您也可以使用 http-request set-header X-Forwarded-Proto在前端,而不是使用 reqadd .
req*指令是比 http-request 更早的功能。所以后者通常是首选,但有一个重要原因为什么你应该更喜欢它,在这里以及为什么你应该使用 set-header而不是 add-header :您不希望客户端能够伪造只有代理应该注入(inject)的 header 。对于非 https 前端,您还应该 http-request set-header X-Forwarded-Proto http这样就不存在错误的上游 header 的可能性。 add-header选项,就像 reqadd , 不会删除任何现有的同名 header ,而 set-header做。

关于https - X-Forwarded-Proto https 在前端还是后端(HAProxy)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51928504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com