Вопрос

Мне трудно получить базовую аутентификацию HTTP, работающую в моем масштабируемом приложении PHP PHP.В моем файле .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 Server, но я понятия не имею, как это исправить.Любые идеи?

Большое спасибо!

Это было полезно?

Решение

Вам нужно иметь URL, который может получить доступ HAProxy, иначе он будет бросать ошибку 503.Если вы хотите, просто сделайте страницу up.html и исключите ее из ваших настроек .htpasswd, затем измените свой haproxy / haproxy.cfg, чтобы опросить этот URL вместо /.

Кроме того, если файл .htpasswd не сохраняется внутри вашего git repo, то он не будет скопирован на каждую передачу в вашем масштабированном приложении.Если он находится в вашем Git Reppo, и, следовательно, в ваших веб-папках, то это небезопасно.

Другие советы

haproxy предлагает функцию, которая проверяет определенный URL как SanityCheck. OPenShift позволяет это по умолчанию. Убедитесь, что он указал на правильный URL или отключить его путем изменения ~ / haproxy / conf / haproxy.cfg:

option httpchk GET /
.

в

#option httpchk GET /
.

Подробнее в этом openshift Threads

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top