Назад | Перейти на главную страницу

HAProxy: ACL для пересылки на разные веб-серверы в зависимости от каталога

в основном у меня есть raspberry pi с несколькими демонами веб-сервера на разных портах, а именно lighttpd, apache и ADAFruit WebIDE. В основном, вот как мне это нужно для работы [как бы вам лучше всего написать файл конфигурации?]:

http://RasberryPi:80/ > http://localhost:8080/
https://RasberryPi:443/ > http://localhost:8080/
(or if it cant be done as root folder to be /apache)

http://RaspberryPi:80/WebIDE > http://localhost:8081/
https://RasberryPi:443/WebIDE > http://localhost:8081/

http://RasberryPi:80/lighttp > http://localhost:8082/
https://RasberryPi:443/lighttp > http://localhost:8082/

Я знаю, что это должно быть что-то вроде следующего, но что, если мне не нужна балансировка нагрузки? и мне нужен https, даже если целевой сервер его не поддерживает ?:

frontend http-in
    bind 10.254.23.225:80
    acl has_special_uri path_beg /special
    use_backend special_server if has_special_uri
    default_backend webfarm

backend webfarm
    balance roundrobin
    cookie SERVERID insert
    option httpchk HEAD /check.txt HTTP/1.0
    option httpclose
    option forwardfor
    server webA 10.254.23.4:80 cookie webA check
    server webB 10.248.23.128:80 cookie webB check

backend special_server
    balance roundrobin
    cookie SERVERID insert
    option httpchk HEAD /check.txt HTTP/1.0
    option httpclose
    option forwardfor
    server webC 10.0.0.1:80 cookie webC check

Вы почти у цели. Настройте три бэкенда:

  1. apache, только с сервером localhost:8080
  2. lighttpd, с сервером localhost:8082
  3. webide, с сервером localhost:8081

Делать apache ваш сервер по умолчанию. Добавить acls, чтобы использовать другие серверы, если URI начинается с соответствующего пути.