QA@IT
«質問へ戻る

質問を投稿

Proxy Error 502 “Reason: Error reading from remote server”

Apacheでリバースプロキシを行い、Tomcatの方で処理を行うということがしたいのですが、

Listen 80

<VirtualHost *:80>
<IfModule mod_rewrite.c>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:8080/AuthorTool/AuthorAttach/ keepalive=on
ProxyPassReverse http://localhost:8080/AuthorTool/AuthorAttach/
</Location>
</IfModule>
</VirtualHost>

apacheのhttpd.confでこのように記述し、80番ポート(例えばhttp://localhost:80/test1.html)のリクエストを受け付けた場合にtomcatで8080ポートで受け付けて処理を行うということがしたいです。
エラーログを見ると

  • (70007)The timeout specified has expired: proxy: error reading status line from remote server localhost:8080
  • proxy: Error reading from remote server returned by /test1.html というエラーが出ていて、これはapacheとtomcatの連携が上手くいっていないということですよね?

##ただし、httpd.confにおいて

<Location /practice>
ProxyPass http://localhost:8080/AuthorTool/AuthorAttach 
ProxyPassReverse http://localhost:8080/AuthorTool/AuthorAttach
</Location>

のようにLocationディレクティブにおいてディレクトリを指定してやると、http://localhost:80/practice/test1.htmlというリクエストに対してhttp://localhost:8080/AuthorTool/AuthorAttach/test1.htmlが動きます。

やはり私のhttpd.confの書き方、またはtomcatの設定などがおかしいのでしょうか?

Apacheでリバースプロキシを行い、Tomcatの方で処理を行うということがしたいのですが、

```
Listen 80

<VirtualHost *:80>
<IfModule mod_rewrite.c>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:8080/AuthorTool/AuthorAttach/ keepalive=on
ProxyPassReverse http://localhost:8080/AuthorTool/AuthorAttach/
</Location>
</IfModule>
</VirtualHost>
```

apacheのhttpd.confでこのように記述し、**80番ポート(例えばhttp://localhost:80/test1.html)のリクエストを受け付けた場合にtomcatで8080ポートで受け付けて処理を行う**ということがしたいです。
エラーログを見ると
- (70007)The timeout specified has expired: proxy: error reading status line from remote server localhost:8080
- proxy: Error reading from remote server returned by /test1.html
というエラーが出ていて、これはapacheとtomcatの連携が上手くいっていないということですよね?

##ただし、httpd.confにおいて
```
<Location /practice>
ProxyPass http://localhost:8080/AuthorTool/AuthorAttach 
ProxyPassReverse http://localhost:8080/AuthorTool/AuthorAttach
</Location>
```
のようにLocationディレクティブにおいてディレクトリを指定してやると、http://localhost:80/practice/test1.htmlというリクエストに対してhttp://localhost:8080/AuthorTool/AuthorAttach/test1.htmlが動きます。

**やはり私のhttpd.confの書き方、またはtomcatの設定などがおかしいのでしょうか?**