保存しました! 環境の準備 1. 4 つの仮想マシンを起動します (ここでは Centos を例として使用します)。IP は次のとおりです。 192.168.130 192.168.132 192.168.128 192.168.129 2. haproxyをインストールする これら2台のマシンの対応するポート130と132の外部ネットワークアクセス権を開きます。 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 restart インストールの実行 /etc/rc .d /init .d /iptables save /etc/rc .d /init .d /iptables restart |
マシン 130 と 132 にそれぞれ haproxy をインストールします。 両方のマシンをインストールしたら、ファイル構成を実行し、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 | 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 stats realm baison- test -Haproxy stats auth admin:admin123 stats hide-version frontend main *: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 default_backend web backend static を使用します balance roundrobin server static1 192.168.230.128:8080 check inter 2000 fall 3 weight 30 server static2 192.168.230.129:8080 check inter 2000 fall 3 weight 30 backend web balance roundrobin server web1 192.168.230.128:8081 check inter 2000 fall 3 server web2 192.168.230.129:8081 check inter 2000 fall 3 |
構成ファイルを 130 サーバー上の同じディレクトリにコピーし、130 サーバー上で次の操作を実行します。 1 2 | rm /etc/haproxy/haproxy .cfg // 刪除130自己的配置文件 scp [email protected]: /etc/haproxy/haproxy .cfg /etc/haproxy/ |
2 つのサーバーの haproxy のインストールと構成が完了しました。 3. 132 と 130 にそれぞれ keepalived をインストールします。 まずopenssl-develをインストールしてください 1 | yum openssl-devel install |
keepalived インストール ディレクトリを作成し、ダウンロードしてインストールします。 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 |
両方のマシンをインストールしたら、keepalived (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 | ! Configuration File keepalived global_defs { for 設定ファイル { router_id Node_132 } vrrp_script chk_http_port { script "/opt/check_haproxy.sh" interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface eth1 virtual_router_id 50 priority 100 advert_int 1 track_script { chk_http_port } virtual_ipaddress { 192.168.230.200 } } vrrp_instance VI_2 { state BACKUP interface eth1 virtual_router_id 52 priority 99 權重,比主服務器小 advert_int 1 virtual_ipaddress { 192.168.230.201 } } |
検出ファイルを作成する 1 2 3 4 5 6 7 8 | 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 /keepalived
.d |
構成ファイルと検出ファイルを別のサーバーにコピーし、130 で次の操作を実行します。 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 |
ここでkeepalivedがインストールされます。 4. tomcatサービス環境をインストールする 128 に 2 つの tomcat をコピーします。1 つはポート 8080、もう 1 つはポート 8081 です。 a. Tomcat ポートが低すぎるため、ポートを変更します。操作を実行します。 b. テストと検証を容易にするために、Tomcat ポート 8080 の Tomcat ページを変更します。 1 | vi webapps /ROOT/index .jsp |
- ヘッドに js をインポートします: <script type="text/javascript" src="test.js"></script>
- 本文の下にサーバーの説明 HTML を追加します: <h1>web-128:8080</h1><h1 id="js_h">js の場所</h1> (これはホスト 128 のポート 8080 のサービス ページであることを示します)
- index.jsp と同じディレクトリに新しい test.js を作成します: window.onload = function(){document.getElementById("js_h").innerHTML='js-128:8080′;}
js ファイルは「js location」の内容を変更し、この js ファイルが 128 ホストの 8080 ポート サービスからのものであることを示します。 c. Tomcat ポート 8081 でも同様の変更を行います。 - ヘッドに js をインポートします: <script type="text/javascript" src="test.js"></script>
- 本文の下にサーバーの説明 HTML を追加します: <h1>web-128:8081</h1><h1 id="js_h">js の場所</h1>
- test.js: window.onload = function() {document.getElementById("js_h").innerHTML='js-128:8081';}
同様に、129 サーバーに 2 つの tomcat をコピーします。1 つはポート 8080、もう 1 つはポート 8081 です。tomcat ファイルを変更するときは、ip 128 を 129 に変更するだけです。 これで環境がインストールされました。 4台のTomcatを実行する haproxyを実行します: service haproxy start keepalived を実行します: 1 | keepalived -D -f /etc/keepalived/keepalived .conf |
haproxy 監視ページを表示するには、次のページを開きます: http://192.168.230.132/haproxy、http://192.168.230.130/haproxy モニタリングを通じて、訪問回数やその他のメッセージを確認できます http://192.168.230.200 または http://192.168.230.201 にアクセスしてページを複数回更新します。 js ファイルとページのソースの変更を観察すると、js ファイルはポート 8080、128、129 のサーバーから取得され、ページはポート 8081、128、129 のサーバーから取得されていることがわかります。ページと静的ファイルの読み込みに使用されるさまざまな haproxy サービス ルールについて説明します。 http://192.168.230.200、http://192.168.230.201 にアクセスしてください。ページ上のデータの変更を監視すると、200は132サーバーによって転送され、アクセス201は130によって転送されていることがわかります。 実際のシナリオでは、動的リソースにアクセスする場合は 200 アドレスが使用され、静的リソースにアクセスする場合は 201 アドレスが使用されます。Tomcat または haproxy をシャットダウンすると、サーバーの切り替えを確認できます。これにより、デュアルマスターバックアップが実現され、高可用性が確保されるとともに、サーバーの使用率も向上します。 全文は http://www.javaseo.cn/article/63/ から。 |