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

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

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

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

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Tomcat

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

解決済

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

Sfidante
Sfidante

総合スコア90

Apache

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

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Tomcat

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

2回答

0評価

0クリップ

30609閲覧

投稿2015/08/26 00:50

編集2015/08/28 07:13

前回の投稿内容で解決とまで
いかなかったため、
改めてお伺いいたしたく投稿いたしました。

原因に関しては、前回の投稿から
ApachではなくTomcatの方にあるのではと考えられます。

ローカル環境ではWebSocektは利用できるのですが、
サーバーに上げたら
WebSockeが機能しなくなってしまいました。
WebSockeとApacheの連携がうまくいっていないようです。

利用している環境は
Apache:2.4.6
Tomcat:7.0.42
CentOS:6.5
です。

http://qiita.com/sion_cojp/items/a79ae08853528761cc30

http://normalse.hatenablog.jp/entry/2015/03/13/200755
を参照して設定を行ったのですが、
うまくいきません。

Webアプリのトップページには
http://www.◯◯.jp/◯◯/
で表示できるとします。

/etc/httpd/conf/extra/httpd-proxy.confの設定は

ProxyPass /◯◯/ ws://www.◯◯.jp/◯◯/ ProxyPassReverse /◯◯/ ws://www.◯◯.jp/◯◯/ ProxyPass /◯◯/ ajp://www.◯◯.jp:8009/◯◯/

としています。

httpd.confにおける設定は以下の通りです。

ServerRoot "/usr" Include /etc/httpd/conf/extra/httpd-proxy.conf Listen 80 LoadModule authn_file_module /etc/httpd/modules/mod_authn_file.so LoadModule authn_core_module /etc/httpd/modules/mod_authn_core.so LoadModule authz_host_module /etc/httpd/modules/mod_authz_host.so LoadModule authz_groupfile_module /etc/httpd/modules/mod_authz_groupfile.so LoadModule authz_user_module /etc/httpd/modules/mod_authz_user.so LoadModule authz_core_module /etc/httpd/modules/mod_authz_core.so LoadModule access_compat_module /etc/httpd/modules/mod_access_compat.so LoadModule auth_basic_module /etc/httpd/modules/mod_auth_basic.so LoadModule reqtimeout_module /etc/httpd/modules/mod_reqtimeout.so LoadModule filter_module /etc/httpd/modules/mod_filter.so LoadModule mime_module /etc/httpd/modules/mod_mime.so LoadModule log_config_module /etc/httpd/modules/mod_log_config.so LoadModule env_module /etc/httpd/modules/mod_env.so LoadModule headers_module /etc/httpd/modules/mod_headers.so LoadModule setenvif_module /etc/httpd/modules/mod_setenvif.so LoadModule version_module /etc/httpd/modules/mod_version.so LoadModule proxy_module /etc/httpd/modules/mod_proxy.so LoadModule proxy_ftp_module /etc/httpd/modules/mod_proxy_ftp.so LoadModule proxy_http_module /etc/httpd/modules/mod_proxy_http.so LoadModule proxy_wstunnel_module /etc/httpd/modules/mod_proxy_wstunnel.so LoadModule proxy_ajp_module /etc/httpd/modules/mod_proxy_ajp.so LoadModule mpm_event_module /etc/httpd/modules/mod_mpm_event.so LoadModule unixd_module /etc/httpd/modules/mod_unixd.so LoadModule status_module /etc/httpd/modules/mod_status.so LoadModule autoindex_module /etc/httpd/modules/mod_autoindex.so LoadModule dir_module /etc/httpd/modules/mod_dir.so LoadModule alias_module /etc/httpd/modules/mod_alias.so <IfModule unixd_module> User apache Group apache </IfModule> ServerAdmin you@example.com <Directory /> AllowOverride none Require all denied </Directory> DocumentRoot "/var/www/html" <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <IfModule dir_module> DirectoryIndex index.html </IfModule> <Files ".ht*"> Require all denied </Files> ErrorLog "/var/log/httpd/error_log" LogLevel warn <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "/var/log/httpd/access_log" common </IfModule> <IfModule alias_module> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" </IfModule> <IfModule cgid_module> </IfModule> <Directory "/var/www/cgi-bin"> AllowOverride None Options None Require all granted </Directory> <IfModule mime_module> TypesConfig /etc/httpd/conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz </IfModule> <IfModule proxy_html_module> Include /etc/httpd/conf/extra/proxy-html.conf </IfModule> <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule>

【追記】
今まで、mod_proxyを利用していたと思っていたのですが、
httpdのエラーログを見たところ、

Apache/2.4.6 (Unix) mod_jk/1.2.37 configured -- resuming normal operations

との記載があり、mod_jkを利用していたようです。

そこで、mod_proxyを利用できるように、変えようと思って、
とりあえず、mod_jk関連のものを削除してApache、Tomcatを起動しました。
すると、

Apache/2.4.6 (Unix) configured -- resuming normal operations

となってしまいました。
起動には成功しているようですが、
これはmod_proxyを利用できていないようです。

また、httpd_proxy.confでの設定を全くしていない時でも、
ポート番号8080を抜いた記載でも、接続がおこなえます。
つまり、他の設定ファイルというで、
ApacheとTomcatの連携を行っているのでしょうか?

httpd.confの設定の問題かと思うのですが、
どこがおかしいのかご教授いただけると幸いです。


【追記】
server.xmlの設定になります。

<?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <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" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <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="webapps" unpackWARs="true" autoDeploy="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>

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

eripong

2015/08/26 05:05

再投稿にした理由と、これまでに分かったことを書いた方が良いと思います。
Sfidante

2015/08/26 05:26

再投稿した理由は解決まで至っておらず、 ネット検索をしても原因と解決策に辿りつけなかったからです。 わかったことは、原因はApacheではなくTomcatの方にある可能性が高いということです。 概念等もいまいちわかっておらず、このような回答しかできず申し訳ありません。
eripong

2015/08/28 06:29

サーバの構成や使っているポートが分からないのですが、ApacheとTomcatは別のサーバですか?AWSでは無いですよね?Tomcat側の設定も見せてもらえますか?
Sfidante

2015/08/28 07:19

ご返答ありがとうございます。 >ApacheとTomcatは別のサーバですか? 申し訳ありません。 別サーバーなのかどうかよくわからないです。 >AWSでは無いですよね? すみません。AWSを利用しております。 サーバー構築で躓いたため、 AWSマーケットプレイスである程度構築しているものを利用しており、 そちらを変更しております。 >Tomcat側の設定も見せてもらえますか? server.xmlの設定でよろしいでしょうか? 追記という形で記載いたしました。 よろしくお願いいたします。
eripong

2015/08/28 10:39

別サーバかどうかは、server.xmlやhttpd.confを編集する際に接続するサーバのIPアドレスかサーバ名が異なるか同じかで分かると思います。
eripong

2015/08/28 10:50 編集

接続がおこなえるというのは、どの様な操作をして、どの様な結果が得られることでしょうか?ApacheとTomcatのアクセスログは確認していますか?
Sfidante

2015/08/28 11:12

>別サーバかどうかは、server.xmlやhttpd.confを編集する際に接続するサーバのIPアドレスかサーバ名が異なるか同じかで分かると思います。ーーーーーーーーーーーーーーーーAWSにおいて、パブリックIPと編集時のIPアドレスが違うので、別サーバかと思われます。
Sfidante

2015/08/28 11:17

>ApacheとTomcatのアクセスログは確認していますか?ーーーーーーーーーーーーーーーーーーーーーApacheに関しては、アクセスログの出力はなく、エラーログしか出力されておりませんでした。 Tomcatに関しても同じく出力がないようです。見ている箇所が違うのかとも思いますが、access_logなるファイルを見ています。
eripong

2015/08/28 11:53

アクセスログがないのはおかしいですね。ApacheとTomcatを落として、アクセスしてみるとどうなりますか?
Sfidante

2015/08/29 03:46

ApecheとTomcatに関しては、再起動させながらおこなっているため、 ログは出力されるべきなのかなと思います。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー すみません。Apacheのアクセスログは変わらずに/var/log/httpd/access_logで出力がないのですが、Tomcatの方には/var/log/tomcat/localhost_access_log.2015-08-29.txtにログが残っておりました。
Sfidante

2015/08/29 03:48

http://www.☓☓☓☓.jp/examplesにアクセスしたところ次のようなログがありました。 ーーーーーーーーーーーーーーーーーーーーーーー 10.0.0.135 - - [29/Aug/2015:12:42:17 +0900] "GET /☓☓☓☓ HTTP/1.1" 302 - ーーーーーーーーーーーーーーーーーーーーーーー 10.0.0.135 - - [29/Aug/2015:12:42:23 +0900] "GET /examples HTTP/1.1" 302 - ーーーーーーーーーーーーーーーーーーーーーーー 10.0.0.135 - - [29/Aug/2015:12:42:23 +0900] "GET /examples/ HTTP/1.1" 200 1179
eripong

2015/08/29 04:03

Tomcatを落としているのにアクセスログが出るのですか?
eripong

2015/08/29 04:47 編集

apacheのエラーログとTomcatのアクセスログは同じサーバに出力されていますか? ss -lntpで、80番ポートで待っているプロセスが分かると思うのですが、どのプロセスが使っていますか?
Sfidante

2015/08/29 05:16

>Tomcatを落としているのにアクセスログが出るのですか?ーーーーーーーーーーーーーーー失礼しました。Tomcatを落としているときはログは出ません。
Sfidante

2015/08/29 05:17

>apacheのエラーログとTomcatのアクセスログは同じサーバに出力されていますか? ss -lntpで、80番ポートで待っているプロセスが分かると思うのですが、どのプロセスが使っていますか?ーーーーーーーーーーーーーーーーーーーーーーーーーー80番ポートを持っているプロセスは4つあり、全てhttpdでしたので、同じサーバーへの出力かと思われます。
eripong

2015/08/29 06:03

Apacheを落として、Tomcatを立ち上げているとき、アクセスできますか?
Sfidante

2015/08/29 06:29 編集

問題もなくアクセスできるようです。
eripong

2015/08/29 06:33

Apacheを落とした際、ssコマンドで80番ポートはどうなっていますか?無くなっていなければ、今見ているのと別のサーバにもApacheがあって、そちらとTomcatが連携しているのだと思います。
eripong

2015/08/29 06:40 編集

アクセスログにある10.0.0.135というのは、何のサーバのIPアドレスでしょうか?
Sfidante

2015/08/29 07:33

Apacheを落とした際、ssコマンドで80番ポートはどうなっていますか?ーーーーーーーーーーーーーーーーーーーーーーーーーssコマンドですとわかりにくかったため、netstatでおこなって確認したところ、 Apacheを停止するとhttpdがなくなり、起動するとhttpdが表示されるため、別サーバのApacheではないかと思います。
Sfidante

2015/08/29 07:39

アクセスログにある10.0.0.135というのは、何のサーバのIPアドレスでしょうか?ーーーーーーーーーーーーーーーーーーーーーーーーーAWSのEC2のプライベートIPが10.0.0.135ではないですが、10.0.0.◯◯ですので、それと関係があるのではないかと思うのですが、 AWSを調べましたが、10.0.0.135は見つかりませんでした。 あと、記載していなくて申し訳ないのですが、AWSでロードバランサを利用しておりますので、その影響でIPアドレスが10.0.0.135になっているのではないかと思います。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Apache

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

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Tomcat

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