Verwenden Sie Haproxy Keepalived für die Installation und Konfiguration des Dual-Active-Load-Balancing

Verwenden Sie Haproxy Keepalived für die Installation und Konfiguration des Dual-Active-Load-Balancing

Gespeichert!

Umgebungsvorbereitung

1. Starten Sie vier virtuelle Maschinen (hier wird Centos als Beispiel verwendet), die IP lautet:

192.168.130

192.168.132

192.168.128

192.168.129

2. Installieren Sie Haproxy

Öffnen Sie die externen Netzwerkzugriffsrechte für die entsprechenden Ports 130 und 132 dieser beiden Maschinen

1 2 3 4 5 /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 8081 -j ACCEPT /etc/rc .d /init .d /iptables /rc .d /init .d /iptables save /etc/rc .d /init .d /iptables restart

Installieren Sie haproxy auf den Maschinen 130 bzw. 132:

1 yum -y install haproxy

Nachdem beide Maschinen installiert sind, führen Sie die Dateikonfiguration durch und ändern Sie die Konfigurationsdatei auf 132:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 #vi /etc/haproxy/haproxy.cfg global    log 127.0.0.1 local2    chroot /var/lib/haproxy    pidfile /var/run/haproxy    maxconn 4000    user haproxy    group haproxy    daemon    stats socket /var/lib/haproxy/stats 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    stats refresh 5s    stats uri /haproxy    stats realm baison- test -Haproxy    stats auth admin:admin123    stats hide-version    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    stats refresh 5s    stats uri /haproxy #haproxy監控界面    stats realm baison- test -Haproxy    stats auth admin:admin123    stats hide-version frontend main *:80 #監聽80端口    acl url_static path_beg -i /static /images /javascript /stylesheets    acl url_static path_end -i .jpg .gif .png .css .js    use_backend static if url_static #匹配url_static條件的url使用static轉發    default_backend web #其他的url使用后面定義的web轉發backend static #static轉發服務    balance roundrobin    server static1 192.168.230.128:8080 check inter 2000 fall 3 weight 30 #128這臺機器上運行8080端口的tomcat,用于提供靜態文件訪問    server static2 192.168.230.129:8080 check inter 2000 fall 3 weight 30 #129這臺機器上運行8080端口的tomcat,用于提供靜態文件訪問backend web verwendet wird. #定義名為”web“的轉發服務    balance roundrobin    server web1 192.168.230.128:8081 check inter 2000 fall 3 #128這臺機器上運行8081端口的tomcat,用于提供非靜態資源訪問    server web2 192.168.230.129:8081 check inter 2000 fall 3 #129這臺機器上運行8081端口的tomcat,用于提供非靜態資源訪問

Kopieren Sie die Konfigurationsdatei in dasselbe Verzeichnis auf dem 130-Server und führen Sie die folgenden Vorgänge auf dem 130-Server aus:

1 2 rm /etc/haproxy/haproxy .cfg //刪除130自己的配置文件scp [email protected]: /etc/haproxy/haproxy .cfg /etc/haproxy/

Die Haproxy-Installation und Konfiguration der beiden Server sind abgeschlossen.

3. Installieren Sie Keepalived auf 132 bzw. 130:

Überprüfen Sie zunächst, ob openssl-devel installiert ist

1 yum install openssl-devel

Erstellen Sie ein Keepalived-Installationsverzeichnis, laden Sie es herunter und installieren Sie es:

1 2 3 4 5 6 7 mkdir /usr/local/ha install cd . /usr/local/ha /configure tar .gz三w.keepalived.org wget http: // tar .gz /software/keepalived-1 zxvf keepalived-1.2.23. .2.23. tar keepalived-1.2.23 cd & make make

Nachdem beide Maschinen installiert sind, konfigurieren Sie Keepalived (132 Maschinen):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #mkdir /etc/keepalived/ #cp /usr/local/ha/keepalived-1.2.23/doc/samples/keepalived.conf.sample /etc/keepalived/keepalived.conf #vi /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs {  router_id Node_132 ###名稱隨便取} vrrp_script chk_http_port {  script "/opt/check_haproxy.sh" ###檢測腳本防止不自動切換的問題,接下來會創建  interval 2  weight 2 } vrrp_instance VI_1 {    state MASTER ###主服務,表示訪問下面虛擬ip 200時,映射到當前機器    interface eth1 ###你的網卡名稱,使用ip a命令查看,并修改    virtual_router_id 50 ###路由id,主從保持一致    priority 100 ###權重,比從服務器大    advert_int 1    track_script {        chk_http_port ### 執行監控的服務    }    virtual_ipaddress {        192.168.230.200 ###虛擬ip地址    } } vrrp_instance VI_2 {    state BACKUP ###從服務,當另一臺機器不工作時,訪問下面虛擬ip 201就映射到當前臺機器    interface eth1    virtual_router_id 52 ###路由id,主從保持一致    priority 99 權重,比主服務器小    advert_int 1    virtual_ipaddress {       192.168.230.201 ###虛擬ip地址    } }

Erstellen einer Erkennungsdatei

1 2 3 4 5 6 7 8 #vi /opt/check_haproxy.sh f [ $( ps -C haproxy --no-header | wc -l) - eq 0 ]; then     /etc/init .d /haproxy start fi sleep 2 if [ $( ps -C haproxy --no-header | wc -l) - eq 0 ]; then       /etc/init .d /keepalived

Kopieren Sie die Konfigurations- und Erkennungsdateien auf einen anderen Server und führen Sie die folgenden Vorgänge auf 130 aus:

1 2 3 mkdir /etc/keepalived/ scp [email protected]: /etc/keepalived/keepalived .conf /etc/keepalived/ scp [email protected]: /opt/check_haproxy .sh /opt/check_haproxy .sh

Hier wird Keepalived installiert.

4. Installieren Sie die Tomcat-Serviceumgebung

Kopieren Sie zwei Tomcats in 128, einen mit Port 8080 und einen mit Port 8081:

a. Ändern Sie den zu niedrigen Tomcat-Port. Führen Sie den Vorgang aus.

b. Ändern Sie die Tomcat-Seite im Tomcat-Port 8080, um Tests und Überprüfungen zu erleichtern:

1 vi webapps /ROOT/index .jsp
  • Importieren Sie js in den Kopf: <script type="text/javascript" src="test.js"></script>
  • Fügen Sie unter dem Textkörper eine HTML-Serverbeschreibung hinzu: <h1>web-128:8080</h1><h1 id="js_h">js-Standort</h1> (zeigt an, dass dies die Serviceseite von Port 8080 des Hosts 128 ist)
  • Erstellen Sie eine neue Datei test.js im selben Verzeichnis wie index.jsp: window.onload = function(){document.getElementById("js_h").innerHTML='js-128:8080′;}

Die JS-Datei ändert den Inhalt „JS-Speicherort“, um anzuzeigen, dass diese JS-Datei vom Portdienst 8080 des Hosts 128 stammt.

c. Nehmen Sie ähnliche Änderungen am Tomcat-Port 8081 vor:

  • Importieren Sie js in den Kopf: <script type="text/javascript" src="test.js"></script>
  • Fügen Sie unter dem Textkörper eine HTML-Serverbeschreibung hinzu: <h1>web-128:8081</h1><h1 id="js_h">js-Standort</h1>
  • test.js: Fenster.onload = Funktion() {document.getElementById("js_h").innerHTML='js-128:8081';}

Kopieren Sie auf ähnliche Weise zwei Tomcats auf den Server 129, einen mit Port 8080 und den anderen mit Port 8081. Ändern Sie beim Ändern der Tomcat-Datei einfach die IP 128 in 129.

Jetzt ist die Umgebung installiert.

Führen Sie 4 Tomcats aus

Führen Sie haproxy aus: service haproxy start

Führen Sie „keepalived“ aus:

1 keepalived -D -f /etc/keepalived/keepalived .conf

Öffnen Sie die Seite, um die Haproxy-Überwachungsseite anzuzeigen: http://192.168.230.132/haproxy, http://192.168.230.130/haproxy

Durch die Überwachung können Sie die Anzahl der Besuche und andere Nachrichten sehen

Aktualisieren Sie die Seite mehrmals, indem Sie http://192.168.230.200 oder http://192.168.230.201 aufrufen:

Durch Beobachten der Änderungen in der Quelle der js-Datei und der Seite können wir erkennen, dass die js-Datei vom Server mit dem Port 8080 von 128 und 129 stammt und die Seite vom Server mit dem Port 8081 von 128 und 129. Beschreibt die verschiedenen Haproxy-Dienstregeln, die zum Laden von Seiten und statischen Dateien verwendet werden.

Besuchen Sie http://192.168.230.200, http://192.168.230.201. Durch Überwachen der Datenänderungen auf der Seite können wir feststellen, dass 200 vom Server 132 weitergeleitet wird und der Zugriff 201 von 130 weitergeleitet wird

In tatsächlichen Szenarien wird beim Zugriff auf dynamische Ressourcen die Adresse 200 verwendet und beim Zugriff auf statische Ressourcen die Adresse 201. Durch Herunterfahren von Tomcat oder Haproxy können Sie den Serverwechsel sehen. Dadurch wird ein Dual-Master-Backup erreicht, das eine hohe Verfügbarkeit gewährleistet und gleichzeitig die Serverauslastung verbessert.

Vollständiger Text von: http://www.javaseo.cn/article/63/

<<:  Netcup: Detaillierte Tipps zum Bestehen der Identitätsprüfung [Vor kurzem wurde die Identitätsprüfung gelockert, es wird empfohlen, sie durchzuführen]

>>:  Installationsanleitung für Java Photo Station Beauty

Artikel empfehlen

HostUS: 15 $/Jahr/2 CPU/512 M/50 G/1000 G/2 IP/OpenVZ

HostUS是2012年成立的美國主機商,提供各類型主機,數據中心均位于美國的亞特蘭大。推出的一款...

CyanDark: 10 $/Monat/5 GB RAM/150 GB Speicher/5 TB Bandbreite/OpenVZ/Dallas

CyanDark, ein amerikanischer Hosting-Anbieter, wu...

WootHosting 1 GB RAM Los Angeles KVM VPS-Bewertung

Details : WootHosting: 15 $/Jahr/1 GB Speicher/20...