Мы заняты настройкой HAProxy. Почти все работает, кроме настройки без нескольких сайтов с разными acl.
Что мы хотим:
Использование HAProxy с несколькими сайтами, все на одном IP, все с одними и теми же бэкэндами, но с разными блокировками IP / защитой имени пользователя и пароля.
Что у нас работает:
Получите входящий трафик на бэкэнд (с ACL для использования https вместо http).
Ситуация без хапрокси / лака:
Теперь мы используем apache для обработки acl (разрешить, запретить ip и использовать защиту имени пользователя и пароля).
Мы попытались зафиксировать это через X-Forwarded-For внутри apache. Однако сами веб-серверы больше не могут связываться друг с другом. Нам пришлось удалить разрешающую роль для подсети (балансировщик нагрузки и веб-сервер находятся в одной подсети). С этим разрешением apache не смотрит на заголовок x-forward и разрешает весь трафик. Без него веб-серверы не могут общаться друг с другом.
У кого-нибудь есть для нас пример или образ мышления?
Теперь: интернет-> брандмауэр-> apache
Что мы хотим: internet-> firewall-> haproxy (ssl offloading) -> varnish-> apache (haproxy и varnish работают на одной машине)
Есть несколько способов настроить это. Самый простой способ - это, наверное, использовать какие-нибудь ACL.
Например.:
Определение разных веб-сайтов
acl site1 hdr_end(host) site1.com
acl site2 hdr_end(host) site2.net
acl site3 hdr_end(host) site3.org
(Я использовал hrd_end в заголовке хоста, так что любой поддомен, а также поддомен без поддомена будет соответствовать. Вы, конечно, должны определить, является ли это также желаемым условием в вашем случае.)
Определение разрешенных источников для сайтов
acl allowed_site1 src 1.2.3.4/32 1.2.4.5/32
acl allowed_site2 src 2.3.4.5/32 3.4.5.0/24
acl allowed_site3 src 4.5.0.0/16
Отрицание всего, что не соответствует
http-request deny if site1 !allowed_site1
http-request deny if site2 !allowed_site2
http-request deny if site3 !allowed_site3
(В основном это читается как: отклонить запрос, если запрос предназначен для указанного сайта, но отсутствует в списке разрешенных IP-адресов)