質問: 学習の一環として、Java8、SpringBootによる開発を行っております。 サーバーはAWSのEC2(OSはAmazonLinux2)を使用しています。 warパッケージを生成し、EC2内のTomcatに配備し、プログラムを公開したいと思っています。 こちらの記事を参考に進めました。 実現したいこと ------- EC2にインストールしたApacheとTomcatを、ajpで連携をさせたいです。 具体的には、「http://パブリックIP/」 でアクセスした際に、SpringBootで作成したWebアプリケーションのトップページが表示されるようにしたいです --- 設定 -- ■ EC2 ElasticIPでパブリックIPアドレスを固定してあります。 セキュリティグループで 80 と 8080 番のポートを開放しています。 ■ Apache インストール :yumでインストール バージョン:Apache2.4.41 設定 :自動起動設定を有効にしてあります。 挙動 :「http://パブリックIP/」でアクセスすると、Apacheのデモページが表示されます。 ■ Tomcat インストール :wgetで最新版をインストール バージョン:Tomcat9.0.34 設定 :サービス登録をし、自動起動設定を有効にしてあります。 挙動 :「http://パブリックIP:8080」でアクセスすると、404エラーが表示されます。 「http://パブリックIP:8080/manager/html」でアクセスすると、アプリケーションマネージャーが開けます。 また、webappsフォルダに「test1」という名称のwarファイルを配備しています。 「http://パブリックIP:8080/test1」でアクセスすると、404が表示されます。 --- 上記の設定後、ApacheとTomcatを連携するために試したこと --------------------------------- ■ Tomcat /opt/apache-tomcat/conf/server.xmlで、8009番ポートのコメントを解除 ``` ``` ■ Apache /etc/httpd/conf.modules.d/00-proxy.confで、モジュールが有効になっていることを確認 ``` LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so ``` try1 /etc/httpd/conf/httpd.confに直接設定を書き込む ``` ProxyPass / ajp://localhost:8009/test1/ ``` どこに書き込んだらよいかわからなかったのでとりあえず下のほうに書き込みました。 ``` 文字制限のため省略... #EnableMMAP off EnableSendfile on # Enable HTTP/2 by default # # https://httpd.apache.org/docs/2.4/mod/core.html#protocols Protocols h2 h2c http/1.1 ProxyPass / ajp://localhost:8009/test1/ # Supplemental configuration # # Load config files in the "/etc/httpd/conf.d" directory, if any. IncludeOptional conf.d/*.conf ``` Try2 外部ファイルを読み込む /etc/httpd/conf/extra/httpd-proxy.confを作成したかったが ディレクトリが存在しないというエラーが出て作成できず ``` vi /etc/httpd/conf/extra/httpd-proxy.conf ``` 解決したい問題 ------- Proxyの設定方法を知りたい webページを公開したい --- サーバーに関する知識が乏しく支離滅裂となり申し訳ありませんが何卒ご教授ください。
回答: 404ページが表示されてるのであれば、まずはルートパスにindex.htmlを配置して表示させてみてください。 表示が確認できたあとProxy利用するかどうかの要件確認して設定に移ってください。