私は最近、Apache solr typo3コミュニティからのインストールスクリプトを介してTomcatをインストールし、過去3日間、「lsof -i」を介してポートでリッスンしているプロセスを照会したときに、偶然に機能しない理由を理解しようとしました"、それはipv6プロトコルにバインドされていました。私はどこでもググっていて、ほとんどがTomcatコネクタで.0.0.にアドレスを設定するとこの問題が解決すると言います。他の人は設定Java_OPTS = "-Djava.net.preferIPv4Stack = true" =;前者はうまくいきませんでしたが、後者はどこに置くかわかりません。 setenv.shに置くことを提案したどこかで読んだ解決策の1つですが、Tomcatインストールでこのファイルが見つかりません。これについては、現時点で何か手助けをお願いします。 Tomcatのバージョンは6.xで、OSはubuntu 11.10です。ありがとう
多くの人がcatalina.sh
起動スクリプトの更新を提案しました。はい、そのソリューションは機能しますが、catalina.sh
スクリプトはカスタマイズ/更新するためのものではありません。代わりに、すべての変更をカスタマイズスクリプトに含める必要があります(例:setenv.sh
)。
注:Tomcat_HOME/bin/setenv.sh
はデフォルトでは存在しないため、作成する必要があります。 catalina.sh
スクリプトを確認すると、スタートアップスクリプトがsetenv.sh
が存在するかどうかを確認し、存在する場合は実行されることを確認できます。
したがって、新しいTomcat_HOME/bin/setenv.sh
スクリプトを1行で作成することをお勧めします。
Java_OPTS="$Java_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "
はい、やっと解決しました。私は これを試す とヘンクの解決策に導かれました。どちらもリモート仮想サーバーでは機能しないようです。私は共有カーネルスペースにいるので、プロバイダーがこれを防止しているという事実を推測しています。とにかく私は追加しました:Java_OPTS= $Java_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses
をcatalina.sh起動スクリプトに追加すると、Tomcatをipv6にバインドする問題が修正されたようです。
Catalina.shを変更するための正しい構文は次のとおりです。
Java_OPTS=" $Java_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "
このインストーラーを使用した場合: " Apache Solr for TYPO "、ファイルserver.xml
のアドレスを変更できます。デフォルトはlocalhostを指しているため、127.0.0.1を探して、必要なIPv4-addressに変更します。変更を有効にするために、Tomcat6を再起動することを忘れないでください。
Ubuntu 11.10でIPv6を無効にする方法については、以下のコメントを参照してください。
MacのVirtualbox-VMでこれを正常にテストしました。コネクタポート8080のアドレスは、server.xml
の127.0.0.1から0.0.0.0に変更されました。
次に、IPv6を無効にすると「tcp6」がなくなるため、IPv4のみのアドレスにバインドされます。
IPv6が有効になる前/有効:
# netstat -anp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 1972/Java
/ IPv6無効化後:
# netstat -anp | grep 8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2045/Java
Setenv.shとCATALINA_OPTSを使用した他の回答とともに...
Tomcat SSLとAPRを使用して、Tomcatをipv4にバインドさせる唯一の方法は、これをコネクタ構成に追加することでした。
address="0.0.0.0"
server.xmlは次のようになります。
<Connector port="8443" protocol="org.Apache.coyote.http11.Http11AprProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
compression="off"
connectionTimeout="1190"
address="0.0.0.0"
>
おそらく推奨される方法ではありませんが、 カーネルレベルでIPv6を無効にする は、TomcatにIPv4バインドを開くように説得します。