Nginx WebSocket을 위한 설정 방법

2.5*2 하빈·2024년 5월 28일
10
post-thumbnail

Web Socket을 연결해야하는데, 왜 연결이 안되지..?

걱정마라^^

nginx 설정을 열어서 아래 코드를 입력하면 해결된다.

1 - Nginx 설정 열기

sudo vim /etc/nginx/sites-enabled/default

2 - Nginx 설정 수정

  • 진짜 이렇게만 수정하면 된다고?

네 진짜입니다.

  • proxy_pass &service_url; 은 무중단 배포를 위한 설정이므로
    현재 설정에서는 무시하셔도 됩니다.

혹시 무중단 배포 과정이 궁금하다면?
아래 링크를 참조해주세요!
Gitlab, Jenkins, Docker, Docker Hub, Nginx, Blue-Green 무중단배포 CI/CD 구축 - 1


이제 각 설정에 대해서 설명해드리겠습니다.

proxy_http_version 1.1;

WebSocket은 HTTP/1.1을 기반으로 하므로,
Nginx가 HTTP/1.1 프로토콜을 사용하도록 설정합니다.

proxy_set_header Upgrade $http_upgrade;

Upgrade 헤더는 HTTP 프로토콜에서
WebSocket 프로토콜로의 전환을 요청할 때 사용됩니다.
클라이언트가 WebSocket 연결을 요청할 때 이 헤더를 포함시키며,
Nginx가 이 헤더를 올바르게 전달하도록 설정해야 합니다.

proxy_set_header Connection "upgrade";

Connection 헤더를 "upgrade"로 설정하는 것은
프로토콜 업그레이드 요청의 일부로,
지속적인 연결을 유지하는 데 필수적입니다.

이 설정은 Nginx가 클라이언트와 서버 간의 연결을
올바르게 유지 관리할 수 있도록 합니다.

proxy_set_header Host $host;

원본 요청의 호스트 이름을 프록시 요청에 전달합니다.
이 설정은 프록시 서버가 원본 서버와 같은 Host 헤더를 유지하도록 합니다.

proxy_set_header X-Real-IP $remote_addr;

클라이언트의 IP 주소를 $remote_addr 변수의 값으로 X-Real-IP 헤더에 설정합니다.
이 헤더는 원래 클라이언트의 실제 IP 주소를 식별하는 데 사용됩니다.

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

클라이언트의 IP 주소를 X-Forwarded-For 헤더에 추가합니다.
이 헤더는 원본 클라이언트의 IP 주소를 식별하는 데 도움을 주며,
프록시 서버를 통과한 요청의 추적에 사용됩니다.

proxy_set_header X-Forwarded-Proto $scheme;

요청이 사용하는 프로토콜(http 또는 https)을
X-Forwarded-Proto 헤더에 설정합니다.
이는 원본 요청의 프로토콜을 알려주는 데 사용됩니다.

proxy_read_timeout 20m;

프록시 읽기 시간 초과를 20분으로 설정합니다.
이는 프록시 서버가 타임아웃을 발생시키기 전에
대상 서버로부터 응답을 기다리는 최대 시간을 정의합니다.


네! 끝났습니다!

이제 Socket 연결을 해볼까요?

저는 아주 잘 되었습니다!

혹여나 SSE 연결때문에 Nginx 설정을 변경하려고 하신다면....

그건 좋지 않은 선택이라는 것을 알려드리며...

커넥션 풀 설정을 환경에 맞게 조절하면서 사용하셔요..!

여튼, 오늘도 많이 배우는 하루입니다!!

profile
끝내주는 남자

2개의 댓글

comment-user-thumbnail
2024년 6월 10일

Ricky Australia delivers a dynamic online gaming environment with a wide variety of games to suit all types of players. From exciting pokies to traditional table games and live dealer options, there's something for everyone. The platform is user-friendly, with a smooth and straightforward design that makes navigation a breeze. Players can enjoy generous bonuses and ongoing promotions that enhance the gaming experience. The mobile-friendly site ensures that you can play anytime, anywhere. Ricky https://ricky-casino.bet also offers reliable customer support to address any issues or queries promptly. Remember to play responsibly and be aware of the legal gambling age and regulations in your area.

1개의 답글