Следующий файл конфигурации работает, как ожидалось, но повторяет проверку работоспособности для реального прокси-сервера, как я могу избежать такой повторяющейся проверки работоспособности? (Я все еще хочу проверить состояние здоровья, но не повторяю его)
global
external-check
defaults
option httplog
log 127.0.0.1:514 user
timeout connect 5000s
timeout client 5000s
timeout server 5000s
#Close the using connection when backend server marked as down
listen main-proxy1
bind 127.0.0.1:8079
mode http
option external-check
external-check command /checker
balance static-rr
server proxy1 127.0.0.1:9999 check on-marked-down shutdown-sessions on-marked-up shutdown-backup-sessions
#Don't close the using connection when backend server marked as down
listen main-proxy2
bind 127.0.0.1:8080
mode http
option external-check
external-check command /checker
balance static-rr
server proxy2 127.0.0.1:9999 check
Вы можете использовать track
директива для отслеживания статуса другого сервера. В вашем случае второй server
строка будет:
server proxy2 127.0.0.1:9999 track main-proxy1/proxy1
Я думаю, что самый простой способ решить эту проблему - определить интерфейс и серверную часть:
пример:
frontend www.mysite.com
bind 10.0.0.3:80
bind 10.0.0.3:443 ssl crt /etc/ssl/certs/mysite.pem
http-request redirect scheme https unless { ssl_fc }
use_backend api_servers if { path_beg /api/ }
default_backend web_servers
backend web_servers
balance roundrobin
cookie SERVERUSED insert indirect nocache
option httpchk HEAD /
default-server check maxconn 20
server server1 10.0.1.3:80 cookie server1
server server2 10.0.1.4:80 cookie server2
У вас будет проверка работоспособности в бэкэнде, и теперь вы можете использовать один и тот же бэкэнд для нескольких интерфейсов.