通过HAProxy进行Openshift HTTP身份验证

时间:2014-04-12 17:20:49

标签: php apache openshift haproxy

我很难在我的可扩展的Openshift PHP应用程序上运行基本的http身份验证。在我的.htaccess文件中,我有:

AuthUserFile path/to/.htpasswd
AuthType Basic
AuthName "My App"
Require valid-user

这在我的本地测试服务器上运行良好,但是当我尝试在Openshift上使用它时,我得到503服务不可用,并且在我的haproxy.log中我得到:

[WARNING] 101/113040 (368468) : Server express/local-gear is DOWN, reason: Layer7 wrong status, code: 401, info: "Authorization Required", check duration: 2ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
[ALERT] 101/113040 (368468) : proxy 'express' has no server available!

所以我猜问题必须在HAProxy服务器上,但我不知道如何修复它。有什么想法吗?

非常感谢!

2 个答案:

答案 0 :(得分:3)

haproxy提供了一项功能,可以将某个URL检查为sanitycheck。 Openshift默认启用此功能。 确保它指向正确的URL,或通过更改〜/ haproxy / conf / haproxy.cfg禁用它:

option httpchk GET /

#option httpchk GET /

在此openshift thread

中阅读更多内容

答案 1 :(得分:1)

您需要拥有haproxy可以访问的网址,否则会产生503错误。如果您只想创建一个up.html页面并将其从.htpasswd设置中排除,那么请更改您的haproxy / haproxy.cfg以轮询该网址而不是/.

此外,如果.htpasswd文件未存储在您的git仓库中,则不会将其复制到缩放应用程序中的每个齿轮。如果它在您的git仓库中,因此在您的Web可访问文件夹中,那么这是不安全的。