Haproxy - использование монитора-URI на Heroku

Мы используем haproxy на heroku для маршрутизации между всеми нашими различными микро-сервисами (также на heroku), поэтому нам нужен только один URL в конфигах.

Я пытаюсь использовать этот трюк:

http://discourse.haproxy.org/t/how-do-i-serve-a-single-static-file-from-haproxy/32

создать файл robots.txt, чтобы запретить все от траления нашего API (все аутентифицированы; это связано с производительностью, а не с соображениями безопасности).

Это кажется самым легким способом сделать это, и он прекрасно работает локально (запускается через "heroku local"). Тем не менее, переход к /robots.txt в нашей реальной среде heroku приводит к прерыванию ответа сервера 503.

Фрагмент haproxy.cfg:

frontend http-in
 bind *:"${PORT}"
 monitor-uri /robots.txt
 errorfile 200 "${STATIC_PATH}/robots.http"
 errorfile 503 "${STATIC_PATH}/robots.http"

Где STATIC_PATH определяется в heroku как "/app/static".

Статический /robots.http:

HTTP/1.0 200 Found
Cache-Control: no-cache
Connection: close
Content-Type: text/plain

User-Agent: *
Disallow: /

Я знаю, что haproxy находит robots.http, потому что, если я установлю env var неверный путь, haproxy откажется запускаться. Из документации он должен затем сохранить этот ответ в памяти и передать его при совпадении с monitor-uri.

Если удалить строку "errorfile 200", haproxy возвращает свою страницу OK сервера по умолчанию, так что monitor-uri правильно совпадает, и 200 - это ответ, который он пытается вернуть.

Из-за этого есть запись "errorfile 503": http://comments.gmane.org/gmane.comp.web.haproxy/19803 но это не имеет значения.

Любые другие предложения? Кто-нибудь еще пробовал это раньше?

Спасибо б

0 ответов

Другие вопросы по тегам