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

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

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

3113閲覧

docker-composeを利用してhttpd+Tomacatの環境を構築したいがajpコネクタの設定でaddress属性にホスト名が使用できない

water_coffee

総合スコア7

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2021/01/02 01:03

docker-composeを使用してapache+Tomcatの環境を構築しようとしているのですが、タイトルの通りTomcatのserver.xmlのaddress属性にホスト名を指定することができません。
enableLookups属性に問題があるのかと考え、trueにしたのですがダメでした。

  • server.xml

server.xml

1 <Connector protocol="AJP/1.3" 2 address="apache" 3 port="8009" 4 enableLookups="true" 5 redirectPort="8443" 6 secretRequired="false" 7 />
  • docker-compose.yml

docker

1 version: '3' 2 3 services: 4 apache: 5 image: httpd:latest 6 ports: 7 - '80:80' 8 volumes: 9 - ./httpd.conf:/usr/local/apache2/conf/httpd.conf 10 tomcat: 11 depends_on: 12 - apache 13 image: tomcat:latest 14 expose: 15 - '8009' 16 volumes: 17 - ./conf:/usr/local/tomcat/conf
  • エラーメッセージ
tomcat_1 | 02-Jan-2021 00:59:59.863 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] tomcat_1 | 02-Jan-2021 00:59:59.948 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-172.18.0.3-8009"] tomcat_1 | 02-Jan-2021 00:59:59.954 SEVERE [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[AJP/1.3-8009]] tomcat_1 | org.apache.catalina.LifecycleException: Protocol handler initialization failed tomcat_1 | at org.apache.catalina.connector.Connector.initInternal(Connector.java:1042) tomcat_1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) tomcat_1 | at org.apache.catalina.core.StandardService.initInternal(StandardService.java:558) tomcat_1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) tomcat_1 | at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1057) tomcat_1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) tomcat_1 | at org.apache.catalina.startup.Catalina.load(Catalina.java:724) tomcat_1 | at org.apache.catalina.startup.Catalina.load(Catalina.java:746) tomcat_1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) tomcat_1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) tomcat_1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) tomcat_1 | at java.base/java.lang.reflect.Method.invoke(Method.java:566) tomcat_1 | at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302) tomcat_1 | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472) tomcat_1 | Caused by: java.net.BindException: Cannot assign requested address tomcat_1 | at java.base/sun.nio.ch.Net.bind0(Native Method) tomcat_1 | at java.base/sun.nio.ch.Net.bind(Net.java:455) tomcat_1 | at java.base/sun.nio.ch.Net.bind(Net.java:447) tomcat_1 | at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227) tomcat_1 | at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:80) tomcat_1 | at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:228) tomcat_1 | at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:211) tomcat_1 | at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1159) tomcat_1 | at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1172) tomcat_1 | at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:592) tomcat_1 | at org.apache.catalina.connector.Connector.initInternal(Connector.java:1039) tomcat_1 | ... 13 more

address属性にapacheが起動しているコンテナのipアドレスを指定した場合は問題なく動きます。
(Tomcatの起動しているコンテナ内に入ってcurl apacheも叩けたので、docker内のDNSサーバも問題なく動いているようです)

もともとajpコネクタのaddress属性にホスト名を指定することはできないのでしょうか。それとも何か設定上の見落としがあるのでしょうか。

バージョン情報

Apache/2.4.46 (Unix)
tomcat9
docker-compose version 1.27.4

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

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

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

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

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

guest

回答1

0

ベストアンサー

address= は Listen する(待ち受け側の) IPアドレス、すなわち、Tomcat コンテナ自身の IPアドレスを指定するものではないでしょうか?
address= を設定しなければ、サーバーのすべての IPアドレスで LISTEN するので、特に指定しなくてもいいはず。

投稿2021/01/02 08:57

TaichiYanagiya

総合スコア12173

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

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

water_coffee

2021/01/04 15:26

ありがとうございます。 参考にした日本語記事に「Tomcatへのリクエストを許可する接続元IP」との記載があったので、勘違いしていたのですが、公式のドキュメントを見る限りでは、おっしゃる通りListenするipアドレスを指定するもののようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問