운영체제 및 컴퓨팅 환경: AWS EC2 CentOS 7.6.1810
Nginx 버전: 1.12.2
이슈:
다음과 같이 엔진엑스에서 도메인을 타고 들어왔을 때 8080 포트로 포워딩이 되도록 설정하였음.
그러나 도메인 접속시 502 (Bad Gateway) 에러가 발생하였으며, 엔진엑스 로그를 확인해 보니 다음과 같은 에러 메세지를 내보내고 있었다.
2018/10/01 22:59:50 [crit] 881#0: *1 connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream,
client: 211.60.50.190, server: jenkins.blablabla.com, request: "GET /favicon.ico HTTP/1.1", upstream:
"http://127.0.0.1:8080/favicon.ico", host: "jenkins.blablabla.com", referrer: "http://jenkins.blablabla.com/"
원인:
여러 검색 등을 통해 확인 결과, 기본적으로 EC2 인스턴스를 런치할 때 SELinux (Security Enhanced Linux)가 함께 작동하는데, 이 SELinux가 HTTP 프록시를 차단하고 있는 것이 문제였다.
해결:
이러한 문제를 해결하기 위해 HTTP 프록시를 허용해주는 커맨드를 실행하기로 하였고, 다음과 같이 실행하였다.
$setsebool -P httpd_can_network_connect true
여기서 -P는 persist의 의미로, 재부팅 후에도 환경설정이 그대로 적용된다는 말이다. 이렇게 함으로써 정상적으로 도메인 접속 후 포트포워딩이 문제 없이 이루어 지는 것을 확인할 수 있었다.
'AWS > EC2' 카테고리의 다른 글
promtail 에이전트 설치 (0) | 2023.08.03 |
---|---|
리눅스 서버에서 커맨드 히스토리 남기는 법 (0) | 2023.08.03 |
AWS EC2 인스턴스 생성 후 시간대 변경 (0) | 2019.04.01 |