環境
- 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 になっている。