Golang + Nginx にてサーバーを移行したら An error occurred になってしまった時の対応

環境

  • Linux CentOS 7
  • Go 1.18
  • Nginx 1.x

An error occurred

サーバーの移行テストを行なっていた時にソースコードを何も変更してないのに、
運用しているプロジェクトが An error occurred となって解決するのに時間がかかった。

ログを見る

「Permission denied」が出てると SELinux が関係しているらしい。

$ sudo cat /var/log/nginx/error.log
.
.
.
2022/07/25 09:06:27 [crit] 31191#31191: *73 connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream, client: 123.456.789.12, server: your.project.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "your.project.com"

SELinux

Permissive or Disabled になっていることを確認する。
Enforcing の場合、無効化しないといけない。

$ getenforce

一時的に無効化する

$ sudo setenforce 0
$ getenforce
Permissive

ずっと無効になるようにする

Permissive の場合、
サーバーを再起動させると設定が元に戻るのでずっと無効にするには下記ファイルを変更する。

$ sudo vi /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled

ファイル変更後、サーバーを再起動させると Disabled になっている。