7.

管理画面の開き方

編集
この記事の要点
  • Tomcat の管理画面(Manager App / Host Manager)の開き方
  • URL: http://localhost:8080/manager/html (Manager App)
  • URL: http://localhost:8080/host-manager/html (Host Manager)
  • デフォルトでは認証情報なしconf/tomcat-users.xml に追加が必要
  • ロール: manager-gui / manager-script / admin-gui

 

Tomcat 管理画面の種類

画面URL用途
Manager App/manager/htmlWeb アプリのデプロイ・停止・リロード
Manager Status/manager/statusサーバ状態(メモリ・スレッド・コネクタ)
Host Manager/host-manager/html仮想ホストの追加・削除
Tomcat Documentation/docsドキュメント
Tomcat Examples/examplesサンプル Servlet/JSP

初期状態でアクセスするとエラー

# http://localhost:8080/manager/html へアクセス
# → 401 Unauthorized
# または「403 Forbidden」「Access Denied」

# デフォルトではユーザが登録されていない
# tomcat-users.xml にユーザを追加する必要がある

ユーザ登録(tomcat-users.xml)

$CATALINA_HOME/conf/tomcat-users.xml を編集:




    
    
    
    
    
    
    

    
    

    
    

ロールの意味

ロール権限
manager-guiManager App の HTML 画面でデプロイ・停止・リロード
manager-scriptMaven 等のスクリプトから API でデプロイ
manager-jmxJMX 経由のサーバ管理
manager-statusサーバ状態画面のみ閲覧可
admin-guiHost Manager の HTML 画面
admin-scriptHost Manager の API

変更を反映

# Tomcat を再起動
$ $CATALINA_HOME/bin/shutdown.sh
$ $CATALINA_HOME/bin/startup.sh

# または systemd
$ sudo systemctl restart tomcat

リモートアクセスを許可する

デフォルトでは 127.0.0.1 からのみアクセス可。リモートから使いたい場合は許可リストを編集:

# Manager App の場合
# $CATALINA_HOME/webapps/manager/META-INF/context.xml


    
    
    
    

本番環境ではセキュリティ上、リモート許可は避け SSH トンネル経由で接続することを推奨:

# SSH ポートフォワード
$ ssh -L 8080:localhost:8080 user@tomcat-server

# ローカルブラウザで http://localhost:8080/manager/html

Manager App で出来ること

  • アプリ一覧: デプロイ済みアプリの状態確認
  • Start / Stop: 個別アプリの起動・停止(Tomcat 自体は止めない)
  • Reload: アプリのクラスローダ再起動(コード変更反映)
  • Undeploy: アプリ削除(webapps/ から削除)
  • Deploy: WAR ファイル / フォルダ指定でデプロイ
  • Sessions: アクティブセッション数表示
  • Find leaks: メモリリークしているアプリ検出
  • SSL Certificate Chain: SSL 証明書情報

API でデプロイ(CI/CD 連携)

# WAR をデプロイ (manager-script ロール必要)
$ curl --user deploy:password \
    --upload-file myapp.war \
    "http://localhost:8080/manager/text/deploy?path=/myapp&update=true"

# アプリのリロード
$ curl --user deploy:password \
    "http://localhost:8080/manager/text/reload?path=/myapp"

# アンデプロイ
$ curl --user deploy:password \
    "http://localhost:8080/manager/text/undeploy?path=/myapp"

# 状態確認
$ curl --user deploy:password \
    "http://localhost:8080/manager/text/list"

Maven プラグインからデプロイ



    org.apache.tomcat.maven
    tomcat7-maven-plugin
    2.2
    
        http://localhost:8080/manager/text
        tomcat
        /myapp
    




    tomcat
    deploy
    password
# デプロイコマンド
$ mvn tomcat7:deploy
$ mvn tomcat7:redeploy
$ mvn tomcat7:undeploy

セキュリティのベストプラクティス

  • 強いパスワード: tomcat-users.xml は平文保存なので推測困難な値
  • 本番では Manager App 無効化: webapps/manager/ を削除 or noindex
  • 許可 IP の限定: RemoteAddrValve で社内 IP のみ
  • HTTPS 必須: 認証情報の盗聴防止
  • SSH トンネル経由: リモートアクセスは VPN or SSH 経由のみ
  • 監査ログ: アクセスログを定期チェック

関連記事

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. tomcatインストール(CentOS)
  2. WARファイルのAutoDeploy設定
  3. tomcatの起動/停止(Linux, Mac)
  4. JRE(JVM)のJavaのバージョン確認方法
  5. エラー一覧
  6. CATALINA_HOMEの確認方法(Linux, Mac)
  7. 管理画面の開き方
  8. tomcatの起動確認方法
  9. tomcatの起動/停止ログとcatalina.log/catalina.outの違い
  10. CentOSにおけるポート開放方法
  11. Javaのバージョン変更方法(Mac編)