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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

1回答

8612閲覧

TomcatとApache間連携のmod_proxyの利用について

unity

総合スコア18

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

1クリップ

投稿2017/06/18 07:48

編集2017/06/18 07:52

OS:winにてTomcatとApache間連携でmod_proxyを利用する設定について質問です。

◆httpd.confファイルの中身にについて
LoadModule roxy_module modules/mod_proxy_ajp.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

この上記2行をコメントアウトをはずして

</IfModule>

Include conf/extra/httpd-ajp.conf

'# Secure (SSL/TLS) connections

('は不要です。)
と記載追加し

◆新規でhttpd-ajp.confファイルを新規作成し
ProxyPass / ajp://localhost:8009/
と記載する

という設定があり、この結果http://localhost/js10/~ポート指定なし
でアプリケーションにアクセスできるようになると参考書にありました。

これはJSP&サーブレットの処理だけをTomcatに転送(処理分担)し
静的コンテンツのみAacheから直接に応答してるそうなのですが、
なぜ設定編集や追加の際にTomcatの文字がひとつも入ってこないのでしょうか。

具体的に上の合計4つの文の編集や追加で何が起こっているのか
アドバイス頂けないでしょうか。
よろしくお願いいたします。

※因みにこの連携は最近のpleiadesをインストールすると自動的にこの設定がされているのでしょうか。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

>具体的に上の合計4つの文の編集や追加で何が起こっているのか

LoadModule proxy_module modules/mod_proxy_ajp.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

この設定は、apacheに対して、モジュールを使うための設定

Include conf/extra/httpd-ajp.conf

この設定は、apacheとして、読み込むconfを指定

ProxyPass / ajp://localhost:8009/

この設定は、「/」のアクセスに対して、ajpを使いローカルホストの8009に転送する。

>なぜ設定編集や追加の際にTomcatの文字がひとつも入ってこないのでしょうか。

tomcat側がListenするportに対して、Apache側が処理を転送しているからです。

tomcatのバージョンのapacheのバージョンが不明なので、tomcatのディレクトリ構成やファイルに
差異があるかもしれませんが、

tomcatのディレクトリ内に、ファイルserver.xmlがあり、そこに以下のような記載があり
それは、tomcat側がajpとしてポート8009でListenしていることを示す。

xml

1 <!-- Define an AJP 1.3 Connector on port 8009 --> 2 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

apacheとtomcatは、ajpというプロトコルで繋がっている。
(apacheからは8009という穴に送りつけてるイメージ)


読まれている参考書の前段に何かありそうに思いますが

httpd-ajp.confnにて

ProxyPass / ajp://localhost:8009/

は、http://domain/~http://127.0.0.1/~

のhttpリクエストを全て、tcpの8009(tocmatのajpポート)に転送します。そのため、静的コンテンツ(img.css.js)へのhttpリクエストでも、8009(tomcat側)に送られる。

例えば、tomcatが用意しているjspやサーブレットのサンプルをApache経由で確認する場合(tomcatのhttpポートでアクセスしない)は、

ProxyPass /examples/ ajp://localhost:8009/examples/

を設定します。そうすると、examplesのjspやservletの画面の画像は、examplesの中にあるものが表示されます。


>※因みにこの連携は最近のpleiadesをインストールすると自動的にこの設定がされているのでしょうか。

開発環境のeclipseにpluginを追加してパッケージジングしているpleiadesであれば、
apacheとtomcatを連携するというものではありません。

pleiadesのサイトで用意されているPleiades All in Oneは、
eclispe + 様々なplugin + jdk(java6,7,8等)+tomcat(6,7,8等)が含まれているだけで

開発するときに、http、jspやservlet等の機能を使うときに、ダウンロードして配置することが不要なだけです。

投稿2017/06/21 01:54

kuniku

総合スコア253

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問