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 но это не имеет значения.
Любые другие предложения? Кто-нибудь еще пробовал это раньше?
Спасибо б