blog.coinsect.io
🇰🇷
원문
마크다운
2025-03-27
29
공유

업비트 웹소켓 요청제한(초당 5회) 우회하기 (nginx 프록시)

필자가 운영중인 암호화폐 시세 정보 제공 사이트 [코인충](https://coinsect.io)에서는 업비트 웹소켓 API에 자주 붙는다. 일례로 메인 화면에는 아래와 같은 영역이 있고, ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/ffdc4b81-9546-4359-a200-d1c0280e63c8_image.png) 김프가와 비슷하게 아래와 같은 페이지도 존재한다. ([링크](https://coinsect.io/prices)) ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/6920d7c5-5f73-447a-9a62-29857b89d8f7_image.png) 근데 어느 순간부터 업비트와의 웹소켓 연결이 잘 안 되기에 문의를 했더니, 2024-07-17부터 웹소켓 요청 헤더에 Origin이 있을 시 rate limit이 적용된다는 답변을 받고 해당 문서를 안내받았다. ([링크](https://docs.upbit.com/kr/changelog/origin_rate_limit)) ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/eec6fc97-6ab2-4ff7-82da-50b83d89649e_image.png) 위 사진처럼 초당 5회까지만으로 요청이 제한되는 정책이 추가되었는데, 이는 동시접속자수가 수십~수백명에 육박하는 웹사이트를 운영하는 상황에선 턱없이 부족한 수치이다. 일반적으로 브라우저에서 웹소켓 요청을 하면, 브라우저가 자동으로 요청 헤더에 'Origin'을 현재 도메인으로 넣어서 요청한다. 따라서 이 부분은 어떤 꼼수를 쓰든 클라이언트에서 해결할 방법은 없다. ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/288fb894-e941-4a26-837d-960c8e1444d2_image.png) 따라서 웹소켓 요청 헤더에 Origin을 보내지 않는 방법이 없을까 고민하다가, 어차피 사용중인 nginx 서버에 업비트 웹소켓 우회용 프록시를 하나 뚫기로 했다. ![](https://d1085v6s0hknp1.cloudfront.net/chat/8b075a34-9e97-42b8-ba4f-69fa271e988b_GnB2wxCaQAAoxC7.jpg) 클라이언트에서도 웹소켓 요청을 내가 운영중인 프록시 서버로 하도록 변경하고 문제는 해결되었다. 다만 원래 유저들의 클라이언트 <-> 업비트가 바로 연결되었던 것과 달리, 이제 내 서버가 프록시로 사용되기 때문에 컴퓨팅 리소스가 더 소모되는 문제는 있다. 트래픽 추이를 지켜봐야 하겠다.
0