2017-02-24 15 views
1

Ubuntu 16 LTSとTomcat 8.5.11 + Apache/2.4.18、mod_jk/1.2.41で最初のマシンをセットアップしました。 私はUbuntu 14 LTS、Tomcat 7.0.70、Apache/2.4.7 mod_jk/1.2.37に慣れていました。Mod_jk workers - ipv4/ipv6/fqdn

私のサーブレットを配備すると、tomcatやappログ​​にエラーはないようですが、それでも役に立たないようです。 FQDN /アプリを使用 は、IPを使用してエラー503 を示した:ポート/アプリがうまく働いた。..

を私はmod_jk.logでこれらのエントリを見た:

[Fri Feb 24 11:17:49.149 2017] [9219:139689407260416] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1068): (worker1) Failed opening socket to (::1:8009) (errno=111) 
[Fri Feb 24 11:17:49.149 2017] [9219:139689407260416] [error] ajp_send_request::jk_ajp_common.c (1728): (worker1) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=111) 

- > :: 1:8009 なぜ私のworker.host = localhostは127.0.0.1(IPv4)の代わりに:: 1(IPv6)に解決されましたか?

私はまた、「新しい」パラメータ「prefer_ipv6」を見て、それを「worker.prefer_ipv6 = 0」が、運のない..

回避策:私はworker.host = 127.0.0.1のすべてを設定し 私が慣れているように、うまく動作します。 欠けている: 何人かの同僚が何らかの理由で(処理中の別のIPスタック?)、127.0.0.1エントリを "localhost"に変更したので、100%自信を持ってIPv4-IPを残しているわけではありません。

私はそれをどのように修正できるかに関するアドバイスをいくつかしていますか?

+0

すべてのポートがマシン上で開かれていることを確認してください – Ghayel

答えて

1

JKコネクタのバグです。「worker。*。host =」設定でホスト名を解決すると、常にIPv6が優先されます。最新のJKコネクタを強制的にIPv4経由で接続する唯一の方法は、IPv4アドレス(DNS名ではなく)を使用することです。

もう1つの方法は、tomcat AJP/1.3リスナーをIPv6でリッスンするように設定することです。

Apacheの人々がJKコネクタのバグを修正するまで、これは唯一のオプションです。

関連する問題