개발 서버는 우분투, Production 은 CnetOS 로 사용하다 보니 배포에서 문제가 자주 생긴다.
아래처럼 늘 하던대로 Reversed Proxy 를 설정했더니 접속이 안된다.
server {
server_name matcham.youngcha.co.kr;
listen 80;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://127.0.0.1:10001;
}
}
Nginx 로그 (/var/log/nginx/error.log) 를 확인하면
2020/12/19 15:27:16 [crit] 13033#13033: *43 connect() to 127.0.0.1:10001 failed (13: Permission denied) while connecting to upstream, client: 125.132.90.135, server: matcham.youngcha.co.kr, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:10001/", host: "matcham.youngcha.co.kr"
Permission denied 오류다.
https://stackoverflow.com/questions/23948527/13-permission-denied-while-connecting-to-upstreamnginx
아래처럼 SELinux 설정을 변경해 주면 정상적으로 접근이 된다.
sudo setsebool -P httpd_can_network_connect 1
경험상 RHEL (CentOS) 에서 오류는 대부분 SELinux 에서 발생하는 것 같다.