Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

Użytkownik


Hej,
Tworzę w sieci VMkę na której ma działać Haproxy. Przyjmijmy że ma ona nazwę h1.
VMka h1 ma dwa interfejsy:
- eth0 ( dla sieci wewnętrznej - adres przydzielany z DHCPa 10.X.112.20 )
- eth1 ( dla sieci zewnętrznej 141.X.X.131 + alias 141.X.X.130 ( floating IP między VMkami na których działa haproxy/keepalive ) ).
VMka f6 z apache2 ma jeden interfejs:
- eth0 ( sieć wewnętrzna - adr z dhcpa - 10.X.112.17 )
Tworzę następującą konfigurację dla haproxy na h1:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3
defaults
log global
mode tcp
option tcplog
option dontlognull
option dontlog-normal
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
listen stats *:1936
mode http
stats enable
stats hide-version
stats uri /stats
stats realm HAProxy Statistics
stats auth admin:admin
listen WWW-HTTP 141.X.X.130:80
mode tcp
option tcplog
maxconn 10000
balance leastconn
server f6 10.X.112.17:80 maxconn 5000 checkPo uruchomieniu haproxy, rzeczywiście nasluchuje na tym IPku oraz na porcie 80, gdy robię wywołanie np. netstat -plnt.
Następnie użyty adres IP ( 141.X.X.130 ) dodaję do konfiguracji keepalive'a ( adres ten będzie pływającym adresem IP między dwoma VMkami ).
vrrp_script chk_haproxy { # Requires keepalived-1.1.13
script "pidof haproxy" # widely used idiom
interval 2 # check every 2 seconds
weight 2 # add 2 points of prio if OK
}
vrrp_instance VR_69 {
interface eth1
state MASTER # or "BACKUP" on backup
advert_int 4
priority 101 # 101 on master, 100 on backup
smtp_alert
virtual_router_id 69
virtual_ipaddress {
141.X.X.130
}
track_script {
chk_haproxy
}
}Tablica routingu:
h1:
default via 141.X.X.129 dev eth1
10.X.X.0/20 dev eth0 proto kernel scope link src 10.X.X.20
141.X.X.128/29 dev eth1 proto kernel scope link src 141.X.X.131
f6:
default via 10.X.X.1 dev eth0
10.X.X.0/20 dev eth0 proto kernel scope link src 10.X.X.17
Po odpaleniu keepalive'a adres 141.X.X.130 pojawia się jako alias do eth1. Po wyłączeniu jednej VMki z Haproxy przeskakuje adres skutecznie na drugą VMkę.
Problem jest w tym że nie jestem w stanie zrobić np. 'curl 141.X.X.130' aby mi się wczytała stronka która podaje się z f6 - lecą timeouty gdy to robię z mojego laptopa i hosta lokalnego.
Gdy jestem na h1 i wpisuję 'curl 141.X.X.130' strona ładuje się poprawnie.
W /etc/sysctl.conf dodałem jeszcze:
net.ipv4.ip_forward=1 net.ipv4.ip_nonlocal_bind=1
Ale to również nie pomaga.
Czy coś jeszcze tutaj powinno być zrobione aby to zaczęło działać?
Ostatnio edytowany przez sqrtek (2016-03-27 18:44:52)
Offline

Użytkownik


ref..
any ideas?
Offline







Podobno człowiek...;)








Próbowałeś wcześniej Nginxa?
Bo ja bym raczej od niego zaczął.
Offline

Użytkownik


Konfiguracja była poprawna, problem leżał po stronie OpenStacka w moim przypadku, czyli zupełnie nie związane z tematem :).
Offline