
Я настроил 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
Таким образом, вы сможете удалить все назначения портов из ссылок.