У меня есть один сервер. На этом сервере у меня есть один haproxy контейнер, 2x контейнеры узла. Я пытаюсь разделить следующее.
https://mydomain -> 1e node container (x.x.x.x:8080)
https://mydomain:81 -> 2e node container (x.x.x.x:8080)
Моя конфигурация:
global
log 127.0.0.1 local0 notice
maxconn 2048
tune.ssl.default-dh-param 2048
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
retries 3
timeout connect 5000
timeout client 10000
timeout server 10000
listen stats
bind *:1988 ssl crt /srv/ssl.io.pem
stats enable
stats hide-version
stats realm Haproxy\ Statistics
stats uri /haproxy
stats auth myuser:mypassword
frontend http-in-beta
bind *:81 ssl crt /srv/ssl.io.pem
acl host_mydomain_com_beta hdr_beg(host) -i mydomain.com
use_backend mydomain_beta if host_mydomain_com_beta
frontend http-in
bind *:80
redirect scheme https code 301 if !{ ssl_fc } # redirect all traffic to https
frontend https-in
bind *:443 ssl crt /srv/ssl.io.pem
acl host_mydomain_com hdr_beg(host) -i mydomain.com
use_backend mydomain_cluster if host_mydomain_com
backend mydomain_beta
balance roundrobin
option forwardfor
server mydomain_beta 172.17.0.110:8080
backend mydomain_cluster
balance roundrobin
option forwardfor
server mydomain_node_s1 172.17.0.109:8080
Теперь проблема, которую я получаю, то, что иногда она работает. Иногда я получаю 503. Это печально!
Чувствует, что порт 81 и 80 так или иначе сталкивается?
В сообщении: https://stackoverflow.com/questions/13994629/haproxy-random-http-503-errors
Мэтью Джонс ответил на мой вопрос. Я запускал не один, а TEN HAProxy экземпляр, каждый, вероятно, со своими собственными конфигурационными файлами.
Понятия не имею, как это произошло, я обновлял конфигурацию около 10 раз, но всегда использовал команду service haproxy restart
. Странно...
Я использовал следующее для получения процессов и их уничтожения:
ps -ef | grep haproxy
kill <PROCESS NUMBER HERE>
service start haproxy