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

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

ただいまの
回答率

90.85%

  • Spring Boot

    414questions

    Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Spring Boot 実行可能jarデプロイについて

解決済

回答 2

投稿

  • 評価
  • クリップ 1
  • VIEW 1,254

k-zin

score 1

前提・実現したいこと

Spring Bootの実行可能jarファイルをCentOS7でApacheが動いている環境に対してのデプロイについての質問です。
実際にjarをサーバー上で動かしても表示がされず、Apache 123になってしまう状態です。

ルートのページ、localhost:8080(@RequestMapping(path = "/"))にアクセスするとhtmlを返すだけのアプリケーションを作りました。
STSからの起動で動作を確認し、その後実際にデプロイしてみようと、CentOS7にアップロード、サービス登録、サービススタートまでをしましたが、表示がされません。
おそらくApacheと組み込みTomcatとのajp連携が取れていないのだろうと、サーバのproxy.confにリバースプロキシ設定をしましたが、うまくいきません。
組み込みTomcat側のポートの設定やSSLを導入している事など、色々と要因らしきものは浮かぶのですが、まとまりがつかずそもそもどこで何が引っ掛かっているのかもよくわかりません。

ぼんやりとした質問で申し訳ありませんが、よろしくお願いいたします。

参考にしたサイト

http://progmemo.wp.xdomain.jp/archives/954
https://weblabo.oscasierra.net/tomcat-mod-proxy-ajp/

発生している問題・エラーメッセージ

問題
・サービス登録したjarをスタートさせても表示されずApache123になる、もしくは「応答時間が長すぎる」か「503エラー」になってしまう
・Spring Boot組み込みTomcatの、ajpポート設定記述をどこにどのようにするのかがわからない
・そのほかの部分に原因があるのかどうか

00-proxy.conf

LoadModule proxy_module modules/mod_proxy.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
ProxyPass / ajp://160.16.90.145:8009/
ProxyPassReverse / ajp://160.16.90.145:8009/

補足情報(言語/FW/ツール等のバージョンなど)

Spring Boot 1.5.9
Mavenビルド
組み込みTomcat 8.5.23
CentOS 7.4.1708
Apache httpd 2.4.6
Let’s Encrypt SSL導入済み

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

SpringBoot の組み込みTOMCATを利用している場合は AJPは利用できないはずです。

 ポートが未設定の場合

  • proxy.conf
ProxyPass        / http://160.16.90.145:8080/
ProxyPassReverse / http://160.16.90.145:8080/
# 同一サーバー内なら
# ProxyPass        / http://127.0.0.1:8080/
# ProxyPassReverse / http://127.0.0.1:8080/
# 同一ネットワーク内なら(対象:192.168.56.3:ローカルIP  ip a の結果の lo)
# ProxyPass        / http://192.168.56.3:8080/
# ProxyPassReverse / http://192.168.56.3:8080/

 ポートが設定済みの場合

  • application.properties
server.port=9120
  • proxy.conf
ProxyPass        / http://160.16.90.145:9120/
ProxyPassReverse / http://160.16.90.145:9120/
# 同一サーバー内なら
# ProxyPass        / http://127.0.0.1:9120/
# ProxyPassReverse / http://127.0.0.1:9120/
# 同一ネットワーク内なら(対象:192.168.56.3:ローカルIP  ip a の結果の lo)
# ProxyPass        / http://192.168.56.3:9120/
# ProxyPassReverse / http://192.168.56.3:9120/

で動くかと思われます

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/08 11:51

    動作しました!
    ajpをhttpに変更したら通信できました。こんな単純なことだったとは…
    ありがとうございました。

    キャンセル

0

組み込みTomcatを利用していてもAJPは利用できるのでは?
SpringBoot1.5.xであれば以下の情報が参考になると思います。
https://blog.swdev.ed.ac.uk/2015/06/24/adding-embedded-tomcat-ajp-support-to-a-spring-boot-application/

SpringBoot2.0の場合EmbeddedServletContainerFactoryはクラス名とパッケージが変更されている様子で

org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory

を利用する様です。

上記を用いてBeanを新たに定義します。

以下はサンプルで

@Configuration
public class EmbeddedTomcatConfiguration {

    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();

        Connector ajpConnector = new Connector("org.apache.coyote.ajp.AjpNioProtocol");
        ajpConnector.setProtocol("AJP/1.3");
        ajpConnector.setPort(8009);
        ajpConnector.setRedirectPort(8443);
        // その他Tomcatの設定を実施する
        // 参考
        // https://tomcat.apache.org/tomcat-8.5-doc/api/org/apache/catalina/connector/Connector.html
        tomcat.addAdditionalTomcatConnectors(ajpConnector);   
    }
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.85%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    【Tomcat】と【Apache】の連携に関して

    前回の投稿内容で解決とまで いかなかったため、 改めてお伺いいたしたく投稿いたしました。 原因に関しては、前回の投稿から ApachではなくTomcatの方にあるのではと考えられ

  • 受付中

    ApacheのリバースプロキシとSSL

    こんにちは。 Apache2.4 + Tomcat7 で プロジェクトメンバー間の情報共有サーバーを構築しています。 いま、タスク管理にredmineを導入することになり、 イ

  • 解決済

    warファイルをapache上で起動

    この分野に明るくないので、滅茶苦茶なことを言っているかもしれませんがご容赦ください。 質問windowsのtomcat7.0/webapps/~~.warを centOS7上サー

  • 受付中

    eclipseでのtomcat7の起動について(apatch連携)

    解決したいこと javaの勉強をし始めた初心者です javaのupdateを行って以降、以下の現象が起きて困っています。 eclipse4.5のローカルサーバーとしてmo

  • 解決済

    GitBucketをVPSでhttpsで使う方法

    今、GitBucketをさくらVPS上で使いたいと思い試行錯誤しております。 それで、↓こちらのサイトを参考にさせていただきながら、なんとか動くようになりました。 http:/

  • 解決済

    ApacheとTomcatの連携について(Windows2012 R2)

    前提・実現したいこと Windows Server 2012 R2 にてApache2.4.25とTomcat8.5.11を連携させてWebアプリケーションを動作させたい

  • 受付中

    Tomcatが上手く起動しない

    前提・実現したいこと アプリケーションの開発初心者です。 これから勉強しようとしています。 こちらでの質問も初めてですが、 皆様のお力をどうかお貸しください。 発生し

  • 解決済

    Spring Bootで実行jarを使うデメリット(warのデプロイとの比較)

     開発環境 Spring Boot 1.5.7 Windows Server 2012 Java8  背景 今まで私は、Terasoluna(strutsベース)

同じタグがついた質問を見る

  • Spring Boot

    414questions

    Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。