【CentOS】Tomcat と Nginx を連携する

Linux,開発

おはようございます。

今日は、TomcatとNginxを連携させる方法について。

それぞれのインストールについては次の記事を参考にしていただければ。

【CentOS】CentOS7.5 に Tomcat8 をインストールする

【CentOS】CentOS7.5に Nginx をインストールする

スポンサーリンク

Nginx設定ファイルの作成

単純に http://localhost/ にアクセスがあった場合に、
Tomcatに連携するには次のような設定ファイルを追加すればいいだけです。

/etc/nginx/conf.d/xxxx.conf

    server {
        listen 80;
        server_name xxx.yyy.com;
    
        root /var/local/webData;
    
        access_log /var/log/nginx/tomcat_access.log;
        error_log /var/log/nginx/tomcat_error.log;
    
        location / {
            proxy_pass http://localhost:8080/;
        }
    
    }

コマンド
rootユーザーで作業します。

$ su root
パスワード:
$ vi /etc/nginx/conf.d/tomcat.conf

Nginxを再起動します。

$ systemctl restart nginx

設定が反映されない場合は、次のコマンドを試してみてください。

$ systemctl reload nginx

確認

次のページにアクセスします。

http://[ホスト or IP]/

Tomcat管理ページ

Tomcatのページが表示されればOKです。

SSLの設定

設定ファイルの作成

SSLを利用する場合は次のようにします。
※証明書ファイルは事前に用意してあるものとします。

/etc/nginx/conf.d/yyyy.conf

# HTTP server
#
server {
    listen       80;
    server_name  xxx.yyy.jp;

    # httpはhttpsにリダイレクト
    return 301 https://$host/;

}

# HTTPS server
#
server {
    listen       443 ssl http2;
    http2_push_preload on;
    server_name  xxx.yyy.jp;

    ssl_certificate      /etc/nginx/ssl/xxx.yyy.jp.crt;
    ssl_certificate_key  /etc/nginx/ssl/xxx.yyy.jp.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
        proxy_connect_timeout 10;
        proxy_send_timeout 30;
        proxy_read_timeout 300;
        proxy_pass http://localhost:8080/;
        proxy_redirect http:// https://;
    }
}

 

ポートの解放

デフォルトではSSL(https)のポートが firewall で遮断されているので、次のコマンドを実行して解放します。

コマンド

$ firewall-cmd --add-service=https permanent 
$ firewall-cmd  reload 
$ firewall-cmd --list-all

その後、Nginxも再起動すればOK

まとめ

TomcatとNginxの連携自体は特に大した話ではありませんでしたね。

次回は未定ですが、
Nginxについて少し掘り下げていければいいなと思ってます。

ではでは。

 

 

スポンサーリンク


関連するコンテンツ

Linux,開発CentOS,Linux,Nginx,Tomcat

Posted by doradora