Load balance) Uncaught SyntaxError: Unexpected token '<' 에러

이명진·2024년 3월 20일
0

Load balance 에러를 만나게 되었다.
Uncaught SyntaxError: Unexpected token '<' 에러가 나면서 흰 화면이 등장하게 되었는데
Load balance 없이 기존 주소를 접속하면 에러가 안나고 localhost에서도 에러가 안나는데
load balance 에서만 에러가 났다.

문제를 해결하기 위해서 구글링을 해보고 하라는대로 다 해봤다.

도 해보고 homepage 값도 변경해보고, script태그도 변경해보고 별별 짓을 다해봤는데도 문제가 해결되지 않았다.

무슨 문제인지 간혹가다 정상적으로 나오다가 갑자기 에러가 나오고 원인이 뭔지 잘 몰랐다.

구글링을 해보니 결과가 js로 읽혀야 하는데 HTML로 파일이 읽혀서 나는 에러라고 했다.

Uncaught SyntaxError: Unexpected token '<' 에러

해결

다른 곳에서는 문제가 없는데 로드밸런싱에서만 에러가 나다보니 로드 밸런싱 문제가 아닐까 하면서
세팅 값에서 하나씩 변경해서 적용해보기로 하였다.

그러다가 발견하게 된 cookie-based affinity

지피티 에게 물어보면서 정의에 대해서 알게 되었다.

"Cookie-based affinity" 또는 "Sticky sessions"라고도 불리는 이 방식은 사용자의 세션을 특정 서버에 고정시키는 기술입니다. 이 방식을 사용하면 특정 사용자의 모든 요청이 항상 동일한 서버로 전송됩니다.

쿠키 값으로 고유 값을 지정해놓고 성공한 서버에만 계속 요청을 보내는 것이었다.

확실히 적용하고 보니 에러는 해결이 되면서 페이지가 잘 나타나게 되었다.

부하분산을 테스트 하기 위해서 계속 새로고침을 해봤지만 하나의 페이지만 계속 등장해서 또 잘못된 해결방안인가 라고 생각했지만 지피티에게 물어보니 다른 컴퓨터에서 접속하게 되었을때 B서버를 타게 되냐 물어보니

그렇다고 한다.

단점으로 이렇게 말했다.
특히 동일한 사용자가 계속해서 동일한 서버에 연결되면 해당 서버의 부하가 불균형하게 발생할 수 있고, 서버가 다운될 경우 해당 사용자의 세션이 중단될 수 있습니다

동일한 사용자가 하나의 서버에만 계속 호출하니 로드 밸런싱이 불균형하게 이뤄질수도 있다고 하니 다른 사용자는 다른 서버를 호출할수도 있는 것으로 생각했다.

서버가 다운될경우의 테스트는 load balance에서 해당 사이트를 지우는 것으로 테스트를 해봤다.

즉 A,B사이트를 로드밸런싱할때 A사이트가 배포 중이어서 내려갔을때 A사이트를 제외시켜버렸다.

A 사이트로 계속 호출하던 사용자는 A사이트를 내려버리니 B사이트로 등장하는것까지 확인했다.

내가 원하는 목적은 A,B사이트 동일한 페이지를 렌더링 하고 A사이트가 배포가 진행될때 B사이트로 분산을 하는건데
A를 배포할때 A를 내려버리면 B사이트로 전체 다 이동하니 내 목적과 맞는 방향이어서 적용할수 있었다.

문제를 해결도 하고 목적도 달성할수 있었다 👍

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글