Nginx 역방향 에이전트 웹 소켓

1333 단어
간단 한 소개
웹 소켓 프로 토 콜 은 클 라 이언 트 와 서버 가 서로 통신 할 수 있 는 방식 을 제공 합 니 다. 현대 의 많은 브 라 우 저 는 웹 소켓 을 지원 하고 백 엔 드 의 많은 개발 프레임 워 크 도 대부분 웹 소켓 을 지원 합 니 다.생산 환경 에 서 는 Nginx 를 역방향 대리 로 자주 사용 해 야 하 며, 때로는 백 엔 드 의 Websocket 서 비 스 를 대리 해 야 한다.우 리 는 Nginx 를 설정 해야만 백 엔 드 의 Websocket 을 지원 할 수 있 습 니 다.
구체 적 배치
1. 직접 설정
location /chat/ {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

2, 더 안정 적 인 설정
http {
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

    server {
        ...

        location /chat/ {
            proxy_pass http://backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
    }
}

기본적으로 60s 내 에 프 록 시 서버 가 데 이 터 를 보 내지 않 으 면 연결 이 닫 힙 니 다.우 리 는 proxy 를 설정 할 수 있다.read_timeout 명령 으로 조정 합 니 다.
작은 매듭
얼마 전 Websocket 을 사용 할 때 백 엔 드 에서 사용 하 는 Spring Boot 는 로 컬 개발 에 아무런 오류 가 없 으 며 생산 환경 에 서 는 Nginx 를 역방향 대리 로 사용 하여 지원 되 지 않 는 Websocket 버 전 을 알려 줍 니 다.Nginx 설정 의 문제 일 것 이 라 고 추측 하고 해결 방안 을 기록 합 니 다.
레 퍼 런 스
  • NGINX as a WebSocket Proxy
  • WebSocket proxying
  • 좋은 웹페이지 즐겨찾기