Tomcatをnginx経由にする話

今回は前回(CentOS7でtomcat 8080ポートをこじ開ける話)までのtomcat 8080ポートで公開しているのをnginx経由に80ポートでアクセス出来る方法を検討しました。

まじめに、nginxをインストールします…
はい、パッケージはありませんのでリポジトリを追加します

公式ページでインストール方法があります。

https://nginx.org/en/linux_packages.html#RHEL-CentOS

手順はそのまま

/etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
yum install nginx

入りました!

そ、し、て
起動と有効!(お約束)

systemctl enable nginx
systemctl start nginx

80ポートにアクセすると、デフォルトページが表示されます…

このサイトにアクセスできません  で接続が拒否されました。
次をお試しください

接続を確認する
プロキシとファイアウォールを確認する
ERR_CONNECTION_REFUSED

はいっ!SELinuxのため、接続拒否ですw

早速有効にします…

setsebool httpd_can_network_connect 1 -P
firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --reload
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s25
  sources: 
  services: dhcpv6-client http ssh tomcat
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

httpが追加!

アクセス出来ました!

次は簡単、/にアクセスされたらlocalhost:8080にアクセスします!

nginxの設定… defaultが要らないので、無効に…

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf_bk

そして、tomcatのリダイレクト用の設定をぶっ込みます

/etc/nginx/conf.d/tomcat.conf

server {
  listen 80;
  location / {
    proxy_pass http://localhost:8080;
  }
}

… 最低限ですw

 起動させます… `service nginx start`

… 502 bad gatewayですね…

一度ログをチェックします

# tail /var/log/nginx/error.log 
2020/12/09 22:24:30 [error] 3098#3098: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.1.11, server: , request: "GET / HTTP/1.1", upstream: "http://[::1]:8080/", host: "192.168.1.12"
2020/12/09 22:24:30 [warn] 3098#3098: *1 upstream server temporarily disabled while connecting to upstream, client: 192.168.1.11, server: , request: "GET / HTTP/1.1", upstream: "http://[::1]:8080/", host: "192.168.1.12"
2020/12/09 22:24:30 [error] 3098#3098: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.1.11, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "192.168.1.12"
2020/12/09 22:24:30 [warn] 3098#3098: *1 upstream server temporarily disabled while connecting to upstream, client: 192.168.1.11, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "192.168.1.12"

… tomcat動いていませんでした;;(結構時間かかりました)

404…とか思ったら、tomcatのルートはありません!

試験用に入れているPlantUMLにアクセスすると

やった〜!

これで世界平和になりました!

次回は初の生活系かなw
96%ネタですが…