最速でGCE(Debian)上にNginx+Tomcat環境を構築する


手順

  1. Java をインストール
  2. Java の設定
  3. Tomcat8 をインストール
  4. Tomcat8 の設定を変更
  5. GCEファイヤーウォール設定
  6. Nginx をインストール
  7. Nginx の設定

Javaをインストール

sudo apt-get install default-jre 

Javaの設定

readlink $(readlink $(which java))
> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

Javaのパスが出てくるので、/bin/java の手前までを設定する。

echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre" >> /etc/profile
echo "export JAVA_HOME" >> /etc/profile

Tomcat8をインストール

sudo apt-get update
sudo apt-get install tomcat8

Tomcat8の設定を変更

server.xml を編集する。

sudo cp -a /etc/tomcat8/server.xml{,.old}
sudo vi /etc/tomcat8/server.xml

8080で検索して

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

と、「URIEncoding="UTF-8"」 を追加。

GCEファイアーウォールを設定

  1. Google Cloud Platform のサイドメニュー→VPCネットワーク→ファイアウォールルール
  2. 上側にある「ファイアウォールルールを作成」をクリック
  3. 内容をそれぞれ設定し、作成をクリック
    • 名前:firewall-8080(一例)
    • ターゲット:指定されたターゲットタグ
    • ターゲットタグ:firewall-8080
    • ソースIDの範囲:0.0.0.0/0
    • プロトコルとポート:tcp:8080
  4. VMインスタンスの画面で、公開するインスタンスの名前をクリック
  5. 上側にある「編集」をクリック
  6. 中段付近にある「ネットワークタグ」に「firewall-8080」を追加
  7. 保存をクリック

Tomcatの起動と、ポートが通っているか確認

起動は、

sudo /etc/init.d/tomcat8 start

ポート確認は、

wget http://localhost:8080

ここでステータスコード 200 が返ってきてればOK。

> HTTP request sent, awaiting response... 200 

Nginxのインストール

sudo apt-get install nginx

Nginxの設定

tomcat用のドキュメントルートを作成。

sudo mkdir -p /var/www/tomcat

/etc/nginx/sites-enabled ディレクトリに設定ファイルを追加する。

sudo vi /etc/nginx/sites-enabled/tomcat.conf

tomcat.conf の内容は、

server {
  listen 80;
  server_name XXX.XXX.XXX.XXX;

  root /var/www/tomcat;

  access_log /var/log/nginx/tomcat_access.log;
  error_log /var/log/nginx/tomcat_error.log;

  location / {
    proxy_pass http://127.0.0.1:8080/;
  }
}

「XXX.XXX.XXX.XXX」には、GCEのVMインスタンスの外部IPを書く。独自ドメインを取得していれば、ドメイン名を書く。

Nginxを起動。

sudo /etc/init.d/nginx start

サイトへ接続

GCEの外部IPをブラウザに入力(例:http://XXX.XXX.XXX.XXX)。80番ポートから繋がり、「It works !」の表示がされれば成功。

※GCEのVMインスタンス画面の外部IPをクリックした場合、HTTPSで繋げようとするため、SSLの設定が済んでいない場合は、ブラウザにIPアドレスを直打ちして、HTTPで接続しないと繋がらない。