Dazzling 개발 노트

[CI/CD] 오류 - GitHub Webhooks HTTP 502, 302 본문

DevOps/CICD

[CI/CD] 오류 - GitHub Webhooks HTTP 502, 302

dj._.dazzling 2023. 12. 22. 22:27

CI/CD를 구현할 때 GitHub Webhooks를 설정하면서 발생했던 문제들과 해결 방법을 정리해보겠다.

해당 문제들은 Jenkins와 GitHub를 연동하면서 발생한 것임을 인지하고 읽어보면 이해가 쉬울 것이다.

 

HTTP 502

502 코드는 Bad Gateway 에러 응답 코드이다.

서버나 게이트웨이나 프록시 서버 역할을 하면서 업스트림 서버로부터 유효하지 않은 응답을 받았다는 것을 의미한다.

 

일단 첫 번째로 Jenkins의 서버 방화벽에서 포트가 열려있는지 확인한다.

GitHub에서 Jenkins로 요청을 줄 때 Jenkins의 8080 포트가 열려있지 않으면 요청을 받을 수 없다.

 

방화벽과 포트 설정하기

https://heni.tistory.com/24

 

나는 방화벽을 통해 포트를 열어주었고, 정상적으로 열려있는 것도 확인했으나 502 오류는 계속 발생했다.

 

결국 찾아낸 원인은 VPN인데,

처음 Jenkins 서버를 올릴 때 학교에서 제공하는 On-premise 환경을 사용했었다.

온프레미스 환경은 별도의 VPN을 통해서 접속이 가능한데,

GitHub에서 온프레미스 내 Jenkins 서버에 연결하려고 하니 VPN을 지나지 못해서 연결이 되지 않은 것으로 판단된다.

 

이 문제는 AWS에서 Ec2를 생성해 Jenkins 서버를 구축한 후 해결이 되었다.

물론 여기서도 인바운드 규칙에 포트를 열어두어야 한다.

 

 

HTTP 302

302 코드는 리디렉션 상태 응답 코드이다.

 

해당 문제는 ip 주소 뒤에 /github-webhook/에서 /를 작성하지 않아서 발생한 문제였다.

/github-webhook/로 작성한 후 문제를 해결할 수 있었다.

 

 

참고

https://heni.tistory.com/24

https://jong-bae.tistory.com/27

https://lng1982.tistory.com/351