QA@IT

NginxとTomcatの連携

6996 PV

Nginxを使ってTomcatとの連携を図ろうと思います。
ですが、使用するWebサーバーはApacheです。

  1. Nginxは80ポートのリクエストを受け取り、Tomcatの8080ポートにリバースプロキシ
  2. Tomcatでは、Apacheで解放してある8081ポートを使って、サーブレットからHTMLをGETアクセスをする
  3. GETしてきたHTMLをレスポンスとして返す。

このようなことはできますか? あくまでNginxがリバースプロキシ用、WebサーバーにApache、AppサーバーにTomcatと役割を区別たいです。

また、ブラウザ上から8080ポートへのアクセスを禁止したいのですが、それも可能でしょうか?

  • すみません、補足です。
    Tomcatでのサーブレットアプリケーションは、ApacheのドキュメントをGETするものです。
    -

回答

>1. Nginxは80ポートのリクエストを受け取り、Tomcatの8080ポートにリバースプロキシ

1については、このサイトを参考にすれば可能かと思います。
http://sekai.hatenablog.jp/entry/2013/02/13/185900

>2. Tomcatでは、Apacheで解放してある8081ポートを使って、サーブレットからHTMLをGETアクセスをする
>3. GETしてきたHTMLをレスポンスとして返す。

2,3については、別のQAの回答で満たしているでしょうか?
http://qa.atmarkit.co.jp/q/3332

>また、ブラウザ上から8080ポートへのアクセスを禁止したいのですが、それも可能でしょうか?

Tomact側でNginx以外からアクセスさせないようにすればよいかと思います。
http://www.javaroad.jp/opensource/js_tomcat7.htm

編集 履歴 (0)
  • ありがとうございます。
    上記の質問とは別の質問になってしまうのですが下に書かせていただきます。
    -
  • Nginxで
    location / {
    proxy_pass http://localhost:8080/practice/test1/;
    }
    でリバースプロキシを設定しているのにTomcatのcatalina.outを見ると
    requestのURLがhttp://localhost/practice/test1/◯◯ と8080ポートにアクセスできないのですが、私のミスでしょうか?
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。