haproxy: как перехватывать ссылки, которые указывают напрямую на внутренние серверы

haproxy: как перехватывать ссылки, которые указывают напрямую на внутренние серверы

Я настроил haproxy, и он отлично работает, я могу получить доступ к веб-страницам, которые находятся на серверах на внутреннем сервере.

Настройка следующая:

Есть один фронтенд-сервер haproxy, который указывает на разные бэкенды в зависимости от порта.

  • frontend:81 баллов к backend:8100
  • frontend:82 баллов к backend:8200

На странице frontend http://frontend:82/есть ссылки, как http://frontend:82/fooи всякий раз, когда я нажимаю на одну из этих ссылок, haproxy проверяет, что подключается к правильному backend-серверу. Одна из этих ссылок указывает на http://backend:8200/bar(backend-сервер и другой порт).

Если я нажму на эту ссылку, то меня перенаправят на сервер на бэкенде, а не на фронтенд haproxy. Есть ли способ перехватить эти вызовы на бэкенд-серверы?

решение1

Когда пользователь нажимает на ссылку http://backend:8200/bar, если только DNS для «backend» не указывает на ваш HAProxy, вы не сможете перехватить запрос.

Порты, вероятно, не лучший способ сделать это.

Вам лучше иметь фронтенд на 80 и использовать списки контроля доступа на основе URL

НАПРИМЕР:

frontend http_frontend 
   bind *:80
   acl path_foo path_beg /foo
   acl path_barbar path_beg /bar 
   use_backend foo_backend if path_foo
   use_backend bar_backend if path_bar

backend foo_backend
   server backend:8200

backend bar_backend
   server backend:8100

Таким образом, вы сможете удалить все назначения портов из ссылок.

Связанный контент