なぜNginxとTomcatを連携?
Javaを動かす際のサーバ(ミドルウェア)としてTomcatはよく使われると思いますが、元々Java以外の言語を扱っていた方などは、Webサーバとしての細かい設定はApacheやNginxの方が慣れている場合がありますよね?
そんな時はURLからのアクセスをNginxやApacheで受けて、そこからリバースプロキシの設定でTomcatに連携させる方法が有効です。
基本的な設定自体はそんなに難しいものではないので、ここではその手順を記載したいと思います。
ちなみに今回はAWSのEC2サーバで行いますが、CentOS6であってもほとんど手順は同じです。
ポートの開放
まずはポートを開放し、HTTP(80)とHTTPS(443)は接続できるようにしておいてください。
AWSの場合は以下の手順になります。
ti-tomo-knowledge.hatenablog.com
他のサーバの場合でもiptablesなどでポートを開放してください。
サーバ設定
Nginxのインストールと起動
Nginxのインストール
yum -y install nginx
confファイルを書き換えてリバースプロキシ設定
以下のようにnginx.confファイルの「location / {」直下に「proxy_pass http://localhost:8080」を追加してください。
※リバースプロキシの細かい説明は省きますが、今回の設定を簡単に言えば、URLを入力された時に(通常はポート80で来ますよね)、webサーバであるNginxからページを返すのではなく、「ポート8080でアクセスした時に返ってくるページ」を代わりに返すことができます。
vim /etc/nginx/nginx.conf
http { ・ ・ ・ index index.html index.htm; server { ・ ・ ・ location / { proxy_pass http://localhost:8080 } ・ ・ } ・ ・ }
Nginxの起動・自動起動設定
service nginx start chkconfig nginx on
JavaとTomcatのインストールと起動
JavaとTomcatのインストール
yum -y install java-1.8.0-openjdk-devel tomcat8 tomcat8-webapps tomcat8-docs-webapp
Javaのバージョン切り替え
以下のalternativesコマンドによってデフォルトで入っているJavaからインストールしたJavaへバージョンを切り替えてください。
alternatives --set java /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java
ソースの配置
「/var/lib/tomcat8/webapps」直下にjarファイルまたはwarファイルをアップロードしてください。
Tomcatの起動・自動起動設定
以下コマンドにより、jarファイルまたはwarファイルが展開され、Tomcatが起動されます。
service tomcat start chkconfig tomcat on
まとめ
基本的には上記の流れでリバースプロキシの設定は完了です。
ブラウザからポート80でNginxにアクセスすれば、リバースプロキシの設定により、ポート8080のTomcatからコンテンツが配信されるようになります。
上記はあくまでも連携に必要な最低限の設定になります。
他にもSSL対応や環境変数の設定、ログ、プロファイル、セキュリティ周りの設定など、場合によってやることは様々だと思うので、随時調べながら対応してみてください。
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
- 作者:竹形 誠司
- 発売日: 2006/03/01
- メディア: 単行本
Java+MySQL+Tomcatで始めるサーバーアプリケーション開発入門
- 作者:竹形 誠司
- メディア: 単行本