当我使用 Nginx 对 localhost:8080 进行反向代理时,收到 503 响应。检查 Nginx 错误日志,发现:

1
[crit] 10000#0: *3 connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream, client: ***, server: ***, request: "GET /x/ HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "***"

经检查,这是 SELinux 策略阻止 Nginx 访问上游接口所致。

先检查 SELinux 状态:

1
2
sestatus
getenforce

不必禁用 SELinux。允许 Nginx 发起上游网络连接即可:

1
2
sudo setsebool -P httpd_can_network_connect 1
sudo systemctl restart nginx