すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Java Web環境のデプロイ

最終更新日:Aug 28, 2024

Java Webは、Javaプログラミング言語とさまざまなテクノロジーおよびフレームワークを統合して、動的なwebサイトおよびWebアプリケーションの開発を可能にするテクノロジースタックです。 開発者は、Java Webを使用して、プラットフォーム間で展開できる複雑で高性能なwebアプリケーションを開発できます。 Apache Tomcatは、Java webアプリケーションのデプロイと実行に使用される最も一般的なwebサーバー環境です。 このトピックでは、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、またはCentOS 7.xを実行するElastic Compute Service (ECS) インスタンスにJava web環境をデプロイする方法について説明します。

前提条件

ECSインスタンスにJava web環境をデプロイする前に、インスタンスが次の要件を満たしていることを確認してください。

  • インスタンスには、システムによってパブリックIPアドレスが割り当てられるか、EIP (elastic IP address) に関連付けられます。 EIPをインスタンスに関連付ける方法については、「EIPの関連付けまたは関連付けの解除」をご参照ください。

  • インスタンスは、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、またはCentOS 7.xを実行します。

  • インバウンドルールがインスタンスのセキュリティグループに追加され、ポート22、80、443、および8080のトラフィックが許可されます。 詳細については、「セキュリティグループルールの追加」をご参照ください。

ステップ1: ファイアウォールとSELinuxを無効にする

  1. Java web環境をデプロイするECSインスタンスに接続します。

    詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。

  2. ファイアウォールを無効化します。

    1. 次のコマンドを実行して、ファイアウォールのステータスを表示します。

      systemctl status firewalld

      查看防火墙状态

      • ファイアウォールが非アクティブの場合、ファイアウォールは無効になります。

      • ファイアウォールがアクティブの場合、ファイアウォールは有効になります。 この例では、ファイアウォールはアクティブ状態であり、無効にする必要があります。 以下の手順を実行します。

        • ファイアウォールを一時的に無効にするには、次のコマンドを実行します。

          sudo systemctl stop firewalld
          説明

          上記のコマンドを実行すると、ファイアウォールは一時的に無効になります。 次回Linuxオペレーティングシステムを再起動すると、ファイアウォールが再び有効になり、アクティブ状態になります。

        • ファイアウォールを完全に無効にするには、次のコマンドを実行します。

          sudo systemctl disable firewalld
          説明

          ファイアウォールを無効にした後、ファイアウォールを再度有効にすることができます。 詳細については、公式のfirewalld Webサイトをご覧ください。

  3. SELinuxを無効にします。

    1. 次のコマンドを実行して、SELinuxの状態を確認します。

      getenforce
      • SELinuxが無効状態の場合、SELinuxは無効になります。

      • SELinuxがEnforcing状態の場合、SELinuxは有効になります。

    2. SELinuxを無効にします。 SELinuxが無効になっている場合は、この手順をスキップします。

      • SELinuxを一時的に無効にするには、setenforce 0コマンドを実行します。

        説明

        上記のコマンドを実行すると、SELinuxは一時的に無効になります。 次回Linuxオペレーティングシステムを再起動すると、SELinuxは再び有効になり、Enforcing状態になります。

      • SELinuxを完全に無効にするには、vi /etc/selinux/configコマンドを実行してSELinux設定ファイルを変更します。 [Enter] キーを押します。 ポインタをSELINUX=enforcing行に移動し、Iキーを押してInsertモードに入ります。 SELINUX=enforcingをSELINUX=disabledに置き換えます。 Escキーを押して :wqと入力し、enterキーを押してSELinux設定ファイルを保存して閉じます。 変更を有効にするには、オペレーティングシステムを再起動します。

        説明

        SELinuxを無効にした後、SELinuxを再度有効にできます。 詳細については、SELinuxの公式ドキュメントをご参照ください。

ステップ2: JDKのインストール

この例では、Java Development Kit (JDK) 1.8.0_412が使用されます。

説明

JDKのバージョンは、オペレーティングシステムによって異なります。 ECSインスタンスのオペレーティングシステムに適したJDKバージョンを使用します。

  1. 次のコマンドを実行して、JDKパッケージを照会します。

    yum -y list java*
  2. 次のコマンドを実行してJDKパッケージをインストールします。

    この例では、JDK 1.8.0パッケージがインストールされています。

    sudo yum -y install java-1.8.0-openjdk-devel.x86_64
  3. 次のコマンドを実行して、JDKのバージョンを確認します。

    java -version

    サンプルコマンド出力:

    openjdk version "1.8.0_412"
    OpenJDK Runtime Environment (build 1.8.0_412-b08)
    OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode

    )

  4. 次のコマンドを実行して、JDKのインストールパスを表示します。

    find /usr/lib/jvm -name 'java-1.8.0-openjdk-1.8.0 * '

    サンプルコマンド出力:

    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-2.0.1.1.al8.x86_64
  5. Java環境変数を設定します。

    1. 次のコマンドを実行して、設定ファイルを開きます。

      sudo vim /etc/profile
    2. Iキーを押して挿入モードに入ります。

    3. スクリプトの最後に次のコンテンツを追加します。

      JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-2.0.1.1.al8.x86_64
      PATH=$PATH:$JAVA_HOME/bin
      CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      export JAVA_HOME CLASSPATH PATH

      上記の情報で、JDKがインストールされているパスにJAVA_HOMEを設定します。 パスの詳細については、このトピックの手順2. 4を参照してください。

    4. Escキーを押して挿入モードを終了します。 :wqと入力し、Enterキーを押してファイルを保存して閉じます。

    5. 次のコマンドを実行して、環境変数を適用します。

      source /etc/profile

ステップ3: Apache Tomcatをインストールする

Apache Tomcatはwebアプリケーションサーバーです。 この例では、Apache Tomcat 9.0.91が使用されています。

  1. 次のコマンドを実行して、Apache Tomcat 9.0.91インストールパッケージをダウンロードして解凍します。

    wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.91/bin/apache-tomcat-9.0.91.tar.gz -- no-check-certificate
    tar -zxvf apache-tomcat-9.0.91.tar.gz 
    説明

    Apache TomcatのダウンロードURLが変更される場合があります。 上記のダウンロードURLが無効な場合は、公式Apache Tomcat Webサイトにアクセスして、最新のダウンロードURLを取得します。

  2. 次のコマンドを実行して、Apache Tomcatインストールファイルを /usr/local/tomcat /ディレクトリに移動します。

    sudo mv apache-tomcat-9.0.91 /usr/local/tomcat/
  3. server.xmlファイルを設定します。

    1. 次のコマンドを実行して、/usr/local/tomcat/conf/ ディレクトリに移動します。

      cd /usr/local/tomcat/conf/
    2. 次のコマンドを実行して、server.xmlファイルの名前を変更します。

      mv server.xml server.xml_bk
    3. という名前のファイルを作成します。server.xml.

      1. 次のコマンドを実行して、server.xmlファイルを作成して開きます。

        vim server.xml
      2. Iキーを押してInsertモードに入り、次のコンテンツをファイルに追加します。

        <?xml version="1.0" encoding="UTF-8"?>
        <Server port="8006" shutdown="SHUTDOWN">
        <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
        <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
        <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
        <Listener className="org.apache.catalina.core.AprLifecycleListener"/>
        <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
         type="org.apache.catalina.UserDatabase"
         description="User database that can be updated and saved"
         factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
         pathname="conf/tomcat-users.xml"/>
        </GlobalNamingResources>
        <Service name="Catalina">
        <Connector port="8080"
         protocol="HTTP/1.1"
         connectionTimeout="20000"
         redirectPort="8443"
         maxThreads="1000"
         minSpareThreads="20"
         acceptCount="1000"
         maxHttpHeaderSize="65536"
         debug="0"
         disableUploadTimeout="true"
         useBodyEncodingForURI="true"
         enableLookups="false"
         URIEncoding="UTF-8"/>
        <Engine name="Catalina" defaultHost="localhost">
        <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
          resourceName="UserDatabase"/>
        </Realm>
        <Host name="localhost" appBase="/data/wwwroot/default" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
        prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        </Host>
        </Engine>
        </Service>
        </Server>
      3. Escキーを押して挿入モードを終了します。 :wqと入力し、Enterキーを押してファイルを保存して閉じます。

  4. Java Virtual Machine (JVM) メモリパラメータを設定します。

    1. 次のコマンドを実行して、/usr/local/tomcat/bin/setenv.shファイルを作成して開きます。

      vim /usr/local/tomcat/bin/setenv.sh
    2. Iキーを押してInsertモードに入り、次のコンテンツをファイルに追加します。

      JAVA_OPTSパラメーターを指定して、JVMのメモリ情報とエンコード形式を設定します。 この例では、エンコード形式はUTF-8に設定されています。

      JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8'
    3. Escキーを押して挿入モードを終了します。 :wqと入力し、Enterキーを押してファイルを保存して閉じます。

  5. システム起動時にApache Tomcatが自動的に起動できるようにスクリプトを設定します。

    1. 次のコマンドを実行して、スクリプトをダウンロードします。

      重要

      次のスクリプトはコミュニティによって管理されており、参照用にのみ提供されています。 Alibaba Cloudは、スクリプトのパフォーマンスと信頼性、またはスクリプトが操作に与える潜在的な影響に関して、いかなる種類の保証も明示的または暗示的に提供しません。 wgetコマンドを実行してスクリプトをダウンロードできない場合は、ブラウザの https://raw.githubusercontent.com/oneinstack/oneinstack/master/init.d/Tomcat-init にアクセスしてスクリプトの内容を取得します。

      wget https://raw.githubusercontent.com/oneinstack/oneinstack/master/init.d/Tomcat-init
    2. 次のコマンドを実行して、Tomcat-initを移動し、名前を変更します。

      sudo mv Tomcat-init /etc/init.d/tomcat
    3. 次のコマンドを実行して、/etc/init.d/tomcatファイルに対する実行権限を付与します。

      chmod + x /etc/init.d/tomcat
    4. 次のコマンドを実行して、スクリプトでJAVA_HOMEを設定します。

      重要

      スクリプトで指定するJDKパスは、JDKがインストールされているパスである必要があります。 それ以外の場合、Apache Tomcatは起動できません。 パスの詳細については、このトピックの手順2. 4を参照してください。

      sudo sed -i 's@ ^ export JAVA_HOME=.* @ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-2.0.1.1.al8.x86_64 @ ' /etc/init.d/tomcat
  6. 次のコマンドを順番に実行して、Apache Tomcatがシステム起動時に自動的に起動できるようにします。

    sudo chkconfig --add tomcat
    sudo chkconfig tomcat on
  7. 次のコマンドを実行してApache Tomcatを起動します。

    sudo service tomcat start

    Apache Tomcatが開始されました。 サンプルコマンド出力:

    Starting tomcat
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-2.0.1.1.al8.x86_64
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Using CATALINA_OPTS:   
    Tomcat started.
    Tomcat is running with pid: 4517

    で実行されています

手順4: テストプロジェクトをデプロイして、Java web環境がデプロイされているかどうかを確認する

Java webプロジェクトファイルのWARパッケージをwebサイトのルートディレクトリにアップロードします。 ファイル転送機能を提供するリモート接続ツールを使用するか、FTPサイトを構築してプロジェクトファイルをアップロードできます。

この例では、Webサイトのルートディレクトリは /data/wwwroot/defaultです。 次の操作を実行して、WebサイトのルートディレクトリにApache Tomcatテストページを作成し、そのページにアクセスします。

  1. 次のコマンドを実行して、Webサイトのルートディレクトリを作成します。

    sudo mkdir -p /data/wwwroot/default
  2. 次のコマンドを実行して、テストファイルを作成します。

    sudo sh -c 'echo Tomcat test > /data/wwwroot/default/index.jsp; echo "${vSGX_ip_addr} grpc.tf-serving.service.com" >> /etc/hosts'
  3. コンピューターでブラウザーを開き、アドレスバーにhttp:// <インスタンスのパブリックIPアドレス>:8080を入力して、Java web環境がデプロイされているかどうかを確認します。

    次の図に示すページは、Java web環境がデプロイされていることを示しています。返回结果

よくある質問

Java web環境にアクセスできない場合は、次の操作を実行して問題のトラブルシューティングを行います。

  • Apache Tomcatポート8080でのトラフィックを許可するルールがインスタンスのセキュリティグループに追加されているかどうかを確認します。 詳細については、「セキュリティグループルールの追加」をご参照ください。

  • JDKのインストールパスが正しく設定されているかどうかを確認します。 find /usr/lib/jvm -name 'java-1.8.0-openjdk-1.8.0 * 'コマンドを実行して、JDKのインストールパスを確認できます。 2つの設定には、JDKインストールパスが含まれます。 詳細については、このトピックのステップ2.5とステップ3.5を参照してください。