LoginSignup
1
1

More than 5 years have passed since last update.

CentOS7でApatchとnginxの共存(503 bad gatewayの対処)

Last updated at Posted at 2018-07-29

概要

これも何番煎じかわかりません、、、
Apatchとnginxを共存させた際の、503 bad gatewayへの対応メモです。

方法

ApatchのLissenのポートを適当な番号に変えて、nginxをインストールする。
(インストールの方法はググったらいくらでも出てくるので割愛)

Apatch側のConfig

/etc/httpd/conf/httpd.conf

Listen 80#変更
Listen 50080

nginx側のConfig

/etc/nginx/conf.d/default.conf

server {
  listen 80;

  location / {
    proxy_pass http://127.0.0.1:50080;
    proxy_redirect                          off;
    proxy_set_header Host                   $host;
    proxy_set_header X-Real-IP              $remote_addr;
    proxy_set_header X-Forwarded-Host       $host;
    proxy_set_header X-Forwarded-Server     $host;
    proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
  }
}

こっからが問題でした、、、

503 bad gatewayへの対応

nginxのログには次の記録が残っていました。

/var/log/nginx/error.log

2018/07/29 23:23:12 [crit] 15305#15305: *3 connect() to 127.0.0.1:50080 failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:50080/", host: "localhost"

SeLinuxのログには次の記録が残っていました。

/var/log/audit/audit.log

type=AVC msg=audit(1532874320.236:3240): avc:  denied  { name_connect } for  pid=16087 comm="nginx" dest=50080 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ephemeral_port_t:s0 tclass=tcp_socket

SeLinuxで弾かれていました。
SeLinuxは無効にするのは気が引けるので、設定で通信を許可するようにします。

#確認
[root@localhost conf.d]# getsebool httpd_can_network_connect
httpd_can_network_connect --> off

#通信許可
[root@localhost conf.d]# setsebool -P httpd_can_network_connect 1

#確認
[root@localhost conf.d]# getsebool httpd_can_network_connect
httpd_can_network_connect --> on

これで503 bad gateway問題は解消されるはずです。

httpd_can_network_connectの詳細はredhat. customer portalを参照。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1