是否可以通过 HAProxy 添加基本的 HTTP 访问身份验证?

是否可以通过 HAProxy 添加基本的 HTTP 访问身份验证?

我已经成功地在 HTTP 服务器前设置了 HAProxy,无法控制

是否可以配置 HAProxy 来添加简单 HTTP 身份验证到所有网站,请记住我无法在后端配置它?

谢谢,

拉尔斯

答案1

我今天必须自己做这件事(因为 IIS 7.5 实际上不支持针对 Windows 用户帐户或 AD 以外的任何内容进行身份验证!)...

以下是全部代码

userlist UsersFor_AcmeCorp
  user joebloggs insecure-password letmein

backend HttpServers
  .. normal backend stuff goes here as usual ..
  acl AuthOkay_AcmeCorp http_auth(UsersFor_AcmeCorp)
  http-request auth realm AcmeCorp if !AuthOkay_AcmeCorp

我在这里对它进行了更好的记录:http://nbevans.wordpress.com/2011/03/03/cultural-learnings-of-ha-proxy-for-make-benefit/

答案2

我认为这实际上是可能的,但现在我只能找到一个例子来帮助你实现一半……

http://haproxy.1wt.eu/download/1.4/doc/configuration.txt是你的圣经。

查看第 3.4 节(用户列表)

开始:

可以控制对前端/后端/监听部分的访问或者通过仅允许经过身份验证和授权的用户来访问 http stats。为此,需要创建至少一个用户列表并定义用户。

该部分解释了如何设置用户列表。该部分中的示例非常详尽,因此如果需要,请复制该示例。

接下来,需要弄清楚如何应用它...我认为答案位于第 7.5.3 节(第 7 层匹配)

我认为它可能像在 acl 中使用以下内容一样简单:

http_auth(userlist)
http_auth_group(userlist) <group> [<group>]*
  Returns true when authentication data received from the client matches
  username & password stored on the userlist. It is also possible to
  use http_auth_group to check if the user is assigned to at least one
  of specified groups.

再说一次,我还没有测试过,但是我从文档中读到,这是可能的。

我希望这足以帮助你开始?

答案3

如果你想这样做是为了验证

option httpchk

配置,这个更简单的解决方案有效:https://stackoverflow.com/questions/13325882/haproxy-solr-healthcheck-with-authentication

相关内容