on
Nginx를 사용하여 AWS EC2에서 웹소켓을 호스팅하는 방법
Nginx를 사용하여 AWS EC2에서 웹소켓을 호스팅하는 방법
반응형
최근 localhost에서 웹소켓이 개발 중이지만 EC2에서 생산에 실패한 이유를 디버깅하는 데 많은 시간을 소비했기 때문에 이 기사를 씁니다. 인터넷을 샅샅이 뒤져서 아마도 스택 오버플로에 있는 모든 게시물을 읽었을 것이다. 나는 심지어 SO에 대한 질문도 했다.
약간의 시행착오 후에 나는 마침내 그것을 작동시켜 내가 사용한 Nginx 구성과 내 웹소켓 설정을 내 React 애플리케이션과 Node JS 서버에 게시하고 싶었다.
우선 배경부터 짚고 넘어가죠. 내 애플리케이션은 PERN 스택에 구축되어 있으며 사용자가 유튜브와 트위치에서 동시에 라이브 스트리밍할 수 있습니다. React 애플리케이션은 AWS S3에서 호스팅됩니다. 프런트 엔드의 웹소켓의 경우 브라우저의 네이티브 웹소켓 API를 사용했습니다. 여기 아래에 웹소켓이 있는 주요 반응 요소가 있습니다.
내 노드 JS 서버는 AWS EC2에서 호스팅됩니다. 나는 포트 5001에 rest api가 있고 내 웹소켓 api는 포트 3001에 있다. 웹소켓의 경우 ws 라이브러리를 사용했습니다. 물론 여기에는 유명한 socket.io을 포함한 다른 많은 선택들이 있지만, 나는 ws에 대한 이전의 경험이 있어서 그것을 사용하기로 결정했다. my rest api와 websocket api는 my server.js 파일에 정의되어 있습니다.
이제 EC2에 대해 조금 이야기해 봅시다. EC2(Amazon Elastic Compute Cloud)를 사용하면 Amazon의 서버를 임대하여 애플리케이션을 호스팅할 수 있습니다. 시간당 비용을 지불하면 스토리지 및 성능 요구사항에 대한 다양한 옵션이 제공됩니다. 다음은 시간별 요금과 함께 다양한 옵션 목록입니다. t3.나노 인스턴스는 가장 저렴한 옵션 중 하나이기 때문에 사용하고 있습니다. 귀하의 계정이 1년 미만일 경우 무료 등급에 가입할 수 있습니다.
나는 내 EC2 인스턴스에서 nginx를 사용하여 나의 휴식 API 요청과 웹소켓 연결을 내 서버의 올바른 포트로 라우팅하고 있다. 이것은 나의 nginx 서버 블록이다.
모든 코드는 오픈 소스이며 여기서 확인할 수 있습니다. 만약 여러분이 오마이스트림을 사용해보기 위해 라이브 스트리밍 느낌을 받고 싶다면, 그것은 현재로서는 완전히 무료이다.
from http://devcloset.tistory.com/430 by ccl(A) rewrite - 2021-10-08 00:26:30