У меня есть установка с 2 веб-сервисами за балансировщиком нагрузки с HAProxy.В то время как служба, запущенная на 3 серверах, реагирует вполне нормально, другая служба, имеющая только один сервер, не реагирует.
В общем, вот что должно произойти:
loadbalancer -> rancherPlatformAdministration, если определенный URL-адресиспользуемыйloadbalancer -> rancherServices для всех других запросов
Вот мой haproxy.cfg:
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend http-in
bind *:80
# Define hosts
acl host_rancherAdmin hdr(host) -i admin.mydomain.tech
use_backend rancherPlatformAdministration if host_rancherAdmin
default_backend rancherServices
backend rancherServices
balance roundrobin
server rancherserver91 192.168.20.91:8080 check
server rancherserver92 192.168.20.92:8080 check
server rancherserver93 192.168.20.93:8080 check
backend rancherPlatformAdministration
server rancherapi01 192.168.20.20:8081 check
wget --server-response foo.mydomain.tech
отвечает 401, что является уважаемым поведением, так как я не предоставляю ни имя пользователя, нипароль.Я также могу открыть foo.mydomain.tech
через браузер и войти в систему. Так что эта часть работает, как я уже говорил.
wget --server-response 192.168.20.20:8081
(да, этот Tomcat действительно работает под 8081) локально из loadbalancer отвечает200 и, таким образом, работает просто отлично, а попытка wget --server-response admin.mydomain.tech
приводит к следующему:
--2018-06-10 20:51:56-- http://admin.mydomain.tech/
Aufl"osen des Hostnamens admin.mydomain.tech (admin.mydomain.tech)... <PUBLIC IP>
Verbindungsaufbau zu admin.mydomain.tech (admin.mydomain.tech)|<PUBLIC IP>|:80 ... verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet ...
HTTP/1.0 503 Service Unavailable
Cache-Control: no-cache
Connection: close
Content-Type: text/html
2018-06-10 20:51:56 FEHLER 503: Service Unavailable.
Я почти уверен, что здесь что-то не хватает;Я знаю о различиях в пересылке запроса как запроса уровня 4 или уровня 7 - который, кажется, работает просто отлично.Я предоставляю mode http
, поэтому я на слое7 ...
Есть какие-нибудь подсказки о том, что здесь происходит или о том, как я могу это отладить?