-
2020.01.29 개발일지개발일지 2020. 1. 29. 16:04
오늘은 가상화폐를 이용한 복권 시스템 프로젝트 개발이 중단되었다는 이야기를 전달받았다.
뭐 내부 사정에 따라 어떻게 될 지 모르겠는데 일단 개발건이 붕 떴다.
그래서 문제가 발생했던 유지보수건을 처리했다.
1. 모바일 크롬 브라우저에서 사이트 로그인 시도 시 웹 소켓 통신이 먹통이 되는 문제
먼저 구성을 설명해야겠다.
현재 앞 단에 NginX 웹 서버를 띄워놓고 모든 통신을 받아서 프록시를 통해 애플리케이션 서버로 요청을 전가하도록 구성했다.
여기서 애플리케이션 서버를 늘려서 로드밸런싱 설정 (IP 해시 부하 분산 정책)을 처리해놓았다.
그런데 HTTP 통신과 WebSocket 통신이 도메인을 통해 들어오면 간헐적으로 모바일 크롬 브라우저의 요청이 HTTP는 A 애플리케이션 서버로, WebSocket 통신은 B 애플리케이션 서버로 전달되는 현상이 포착되었다.
이리저리 만져보는데 이상하게 모바일 크롬 브라우저에서만 계속해서 증상이 발생했다.
그래서 B 애플리케이션 서버를 backup용으로 설정(라운드 로빈 부하 분산 정책으로 변경)하여 A 애플리케이션 서버가 죽으면 B 서버로 요청을 전가하도록 수정하여 모든 통신이 A 애플리케이션 서버로 전달되도록 임시조치를 취했는데
무슨 문제인지 잘 모르겠다...
HTTP 통신이나 WebSocket 통신이나 요청 클라이언트의 IP는 동일한 아이피일 것이고 그럼 계속해서 요청을 처리했던 서버로만 전가가 되어야 하는데(IP 해시 부하 분산 정책) 왜 요청을 처리한 적 없는 서버로 요청이 전가되는지 원인을 모르겠다.
참고: https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/
'개발일지' 카테고리의 다른 글
2020.02.03 개발일지 (0) 2020.02.03 2020.01.28 휴가 (0) 2020.01.29 2020-01-22 개발일지 (0) 2020.01.22 2019-11 ~ 2019-12 개발일지 중단 (0) 2019.11.06 2019-11-05 개발일지 (0) 2019.11.05