Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Apache Tomcat

TomcatのURLに付くポート番号8080を非表示にしてドメイン名のみでサイトにアクセスする方法と手順

投稿日:2020年6月27日 更新日:

本記事で実現したい事は下記2点、①URLのポート番号・アプリ名を非表示(リバプロ)と②JSP/Servlet名非表示(web.xml)です。これらを実現する事でブラウザにドメイン名のみ(例:XXXX.com)でウェブサイトにアクセス出来るようになります。

[対応前] http://[Your Domain]:8080/[Your App Name]/XYZ.jsp
[対応後] http://[Your Domain]/

<目次>

(1) 前提や実現方式など
 (1-1) 前提条件
 (1-2) 実現方式の概要
 (1-3) 両方の対応が必要な理由
(2) ページ名(JPSやServlet名)を省略入力可能にする対応
 (2-1) 実現方法(ウェルカムページ)
 (2-2) 設定の手順
  (2-2-1) デプロイメントディスクリプタ(web.xml)作成
  (2-2-2) ウェルカムページ定義コードの記述
  (2-2-3) Tomcatの再起動
(3) デフォルトポート番号8080非表示対応
 (3-1) 実現方法(Apacheリバプロ)
 (3-2) Apacheのリバースプロキシ設定手順

(1) 前提や実現方式など

(1-1) 前提条件

(前提事項)
⓪RHEL系OS(CentOS等)でrootでない一般ユーザを用意していること。
 →https://rainbow-engine.com/create-linux-user/

①HTML、JSP/Servlet等でホームページを作成済み
(例:「http://[ホスト名]:[ポート番号]/[アプリ名]/[画面名].jsp」のURL形式で自身のサイトにアクセスできる)

②ドメインを取得してDNSサーバとの紐づけ済み
(例:「http://[ドメイン]:[ポート番号]/[アプリ名]/」のURL形式で自身のサイトにアクセスできる)
 →https://rainbow-engine.com/register-apply-owndomain/

③Apacheのインストールが完了している
・Apacheがインストールされていること。
 →https://rainbow-engine.com/install-apache-centos7/

目次にもどる

(1-2) 実現方式の概要

第一段階としてウェルカムページの設定を行い、URLを指定する際にページ名(XXXX.jspなど)を省略できるようにします。
⇒2章で解説

第二段階として、Apacheのリバースプロキシを導入し、ポート号8080やアプリケーション名をURLに指定せずにアクセスできるようにします。つまりドメイン名のみ(例:XXXX.com)をブラウザに入力すればアクセスできるようになる)。
⇒3章で解説

この2つを対応すると次のようにドメインのみでアクセス出来るようになります。

[対応前] http://[Your Domain]:8080/[Your App Name]/XYZ.jsp
[対応後] http://[Your Domain]/

目次にもどる

(1-3) 両方の対応が必要な理由

仮にウェルカムページの設定をせず、リバースプロキシのみを設定した場合、jsp名を指定しないとウェブサイトにアクセス出来ないため、必然的にリバースプロキシの設定にjsp名を含んだフルURLを指定せざるを得なくなります。
その場合、最初の画面遷移はそれで問題ないのですが、別のページに遷移しようとするとURLの組み立てが不正になる事象が発生したため組合せての対応を提案しています(XXXX.jspYYYY.jspのような変なURLになってしまう)

(図131)
ウェルカムページを設定していないとリバプロにてjsp名まで指定のフルURLが必要となり画面遷移で失敗する。

目次にもどる

(2) ページ名(JPSやServlet名)を省略入力可能にする対応

(2-1) 実現方法(ウェルカムページ)

動的Webアプリ(ウェブサイト)のウェルカムページを設定する事で、ページ名(JPSやServlet名)を省略入力可能にします。

(図211)

下記例で例えばウェルカムページの名称が「XYZ.jsp」だとして、通常Tomcatで動くServlet/JSPのアプリは上段(対応前)の形式のURLを指定して呼び出しますが、それだとユーザーの負担となってまうため、ページ名は省略して呼び出せるようにすると、下段(対応後)のURLのような形でウェルカムページの表示が出来るようになります。

(例)

[対応前] http://[Your Domain]:8080/[Your App Name]/XYZ.jsp
[対応後] http://[Your Domain]:8080/[Your App Name]

ウェルカムページは具体的な設定方法として「デプロイメントディスクリプタ」の作成を行います。「デプロイメントディスクリプタ」は、あるコンテナ/エンジンにデプロイされているアプリケーションの設定ファイルを指す言葉です。ウェブアプリの場合はアプリのROOT配下の「WEB-INF」ディレクトリに「web.xml」で配置するという決まりがあります。

目次にもどる

(2-2) 設定の手順

(2-2-1) デプロイメントディスクリプタ(web.xml)作成

①ご自身のアプリ配下のWEB-INFフォルダを右クリック⇒New⇒Otherと選択
(図221)①

②「Wizards:」で「XML File」を探して選択し「web.xml」という名前で作成。
(図222)②

(2-2-2) ウェルカムページ定義コードの記述

作成したxmlファイルにウェルカムページを指定するための記述を行います。ウェルカムページは<welcom-file-list>タグの中に<welcome-file>タグを使って複数記述する事ができ、上に記述したものから優先されます。

(例)「TENLDNPG_LandingPage.jsp」ページをウェルカムページに指定しています

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <welcome-file-list>
    <welcome-file>TENLDNPG_LandingPage.jsp</welcome-file>
  </welcome-file-list>
</web-app>

(図222)

目次にもどる

(2-2-3) Tomcatの再起動

Tomcatを再起動して設定を反映させます。Eclipseの場合は下図のようにTomcatの部分を右クリックして「Start」を押下する事で起動します。
(図223)

目次にもどる

(3) デフォルトポート番号8080非表示対応

(3-1) 実現方法(Apacheリバプロ)

ウェルカムページの対応により、個別のjspページ名を指定せずにアクセスできるようになりました(対応前)。しかし、これでもポート番号(8080)やアプリケーション名([Your App Name])が残ってしまうためユーザーにとってはサイトに辿り着くのに負担が残ります。それを解決するためにApacheのリバースプロキシを導入すると、ドメイン名を入力するのみでサイトのウェルカムページに辿り着く事ができます(対応後)。

(例)

[対応前] http://[Your Domain]:8080/[Your App Name]
[対応後] http://[Your Domain]/

 

リバースプロキシとは、ウェブサーバの手前でクライアントからのリクエスト(要求)を転送するサーバで、セキュリティやパフォーマンス、信頼性の向上の目的で導入されます。

Apacheの仮想ホストを立てて、背後にある1つ以上のアプリケーションサーバの「リバースプロキシサーバ」として動作させます。今回は単一の仮想ホストを作成し、ネットワークのトラフィックを取得します。またHTTPとHTTPSの両方に対応させる場合、プロキシ設定はHTTPとHTTPSの両方に適用される必要があります。
 
(図311)①一般的なリバプロ

一般的なリバプロでは上記のように「リバースプロキシサーバ」1つに対して複数のアプリケーションサーバが背後に控えますが、今回はApacheとTomcatを同居させる事で、よりシンプルにしています。

(図311)②ApacheとTomcat同居の構成

目次にもどる

(3-2) Apacheのリバースプロキシ設定手順

※リバースプロキシの設定手順は、長くなるため別記事に切り出しました。

(手順)Apacheのリバースプロキシ設定手順
https://rainbow-engine.com/apache-reverseproxy-howto/

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Apache, Tomcat

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

LiteSpeedとApacheの違いや特徴~Webサーバ比較~

<目次> (1) LiteSpeedとApacheの違いや特徴~Webサーバ比較~  (1-1) LiteSpeedの概要  (1-2) 比較表(LiteSpeedとApache)  (1-3) 比較 …

TomcatでEclipseを使う際にserver.xmlを編集しても上書きされる事象の対処方法

<目次> (1) TomcatでEclipseを使う際にserver.xmlを編集しても上書きされる事象の対処方法  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 対処法 …

Apacheのリバースプロキシをhttps化する手順について

<目次> (1) Apacheのリバースプロキシをhttps化する手順について  (1-0) STEP0:前提事項の確認  (1-1) STEP1:mod_sslモジュールの導入  (1-2) STE …

Tomcatのフォーム認証(DataSourceRealm)で403エラー等が発生した場合の対処

<目次> (1) Tomcatのフォーム認証(DataSourceRealm)で403エラー等が発生した場合の対処  (1-1) エラー①:HTTP 403 Forbidden   (1-1-1) 発 …

Apacheのリバースプロキシでセッションを維持する方法

<目次> (1) Apacheのリバースプロキシでセッションを維持する方法  (1-1) 発生状況・エラーメッセージ  (1-2) 調査  (1-3) 原因  (1-4) 対処法 (1) Apache …

  • English (United States)
  • 日本語
Top