質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

解決済

1回答

4289閲覧

keepalivedでクライアントサーバとの通信が失敗する

R.T

総合スコア13

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

0クリップ

投稿2017/11/22 03:09

編集2017/11/22 09:10

keepalivedで、特定のvirtual ip宛でアクセスが来たら、クライアントサーバへ向かわせる処理を行なっています。

ですがホストからクライアントへ「telnet ipアドレス 80」は通信が成功するのに、keepalivedではログに「Keepalived_healthcheckers[5189]: Timeout WEB read server」が表示されてしまいます。weightも0になります。

設定など見直しているのですが、いまいち原因がわかりません。

この問題を解決するためのヒントをいただければ幸いです。

環境
centos6.7

##追記
keepalivedの設定はこちらになっております
virtual ipが複数設定してありますが、問題の部分は「ZZZ.ZZZ.ZZZ.ZZZ/28 dev eth2」の部分で、他の部分は正常に動いています。

keepalived.conf

vrrp_instance vip_gw { interface eth1 state BACKUP priority 100 nopreempt authentication { auth_type PASS auth_pass hogehoge } advert_int 1 virtual_router_id 20 virtual_ipaddress { XXX.XXX.XXX.XXX/28 dev eth0 YYY.YYY.YYY.YYY/24 dev eth1 ZZZ.ZZZ.ZZZ.ZZZ/28 dev eth2 } } include ZZZ_ZZZ_ZZZ_ZZZ.conf

ZZZ_ZZZ_ZZZ_ZZZ.conf

virtual_server ZZZ.ZZZ.ZZZ.ZZZ 80 { delay_loop 3 lvs_sched wlc lvs_method NAT protocol TCP real_server AAA.AAA.AAA.AAA 80 { weight 10 inhibit_on_failure HTTP_GET { url { path /health.html status_code 200 } connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }

##追記2
コメントでいただいたアドバイス
curl -v https://AAA.AAA.AAA.AAA/health.htmlの結果

* About to connect() to AAA.AAA.AAA.AAA port 80 (#0) * Trying AAA.AAA.AAA.AAA... connected * Connected to AAA.AAA.AAA.AAA (AAA.AAA.AAA.AAA) port 80 (#0) > GET /health.html HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: AAA.AAA.AAA.AAA > Accept: */* > < HTTP/1.1 504 Gateway Time-out < Server: nginx/1.10.3 (Ubuntu) < Date: Wed, 22 Nov 2017 09:03:18 GMT < Content-Type: text/html < Content-Length: 192 < Connection: keep-alive < <html> <head><title>504 Gateway Time-out</title></head> <body bgcolor="white"> <center><h1>504 Gateway Time-out</h1></center> <hr><center>nginx/1.10.3 (Ubuntu)</center> </body> </html> * Connection #0 to host AAA.AAA.AAA.AAA left intact * Closing connection #0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2017/11/22 08:20

keepalived の設定を教えてください。また、「クライアントサーバ」→「バックエンドサーバ」とか「リアルサーバ」と書いた方がいいと思います。
R.T

2017/11/22 09:07

504 Gateway Time-outでした。。
guest

回答1

0

ベストアンサー

リアルサーバーのヘルスチェックで、keepalived のホストから http://AAA.AAA.AAA.AAA/health.html に接続でき、応答コードが 200 である必要があります。

応答コードが 504 とのことですので、リアルサーバー側の設定、ログ等を確認ください。

投稿2017/11/22 09:13

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

R.T

2017/11/22 09:15

ありがとうございますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問