nginx 웹 소켓 지원 열기

2677 단어 축적 공유
1)  nginx.conf, http            :
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}
 
map     :
              $http_upgrade   ,     $connection_upgrade  ,     $http_upgrade        $connection_upgrade,
       {}     。          ,       ,  $connection_upgrade        upgrade。     $http_upgrade       ,
     close。
 
 
2)  vhosts          , location           :
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
 
    :
upstream socket.kevin.com {
    hash $remote_addr consistent;
    server 10.0.12.108:9000;
    server 10.0.12.109:9000;
}
 
 location / {
            proxy_pass http://socket.kevin.com/;
            proxy_set_header Host $host:$server_port;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

Nginx 프 록 시 웹 소켓 이 자주 중단 되 는 해결 방법 (즉, 긴 연결 을 유지 하 는 방법)
현상 설명: nginx 로 특정한 업 무 를 대리 하 는데 평균 1 분 정도 걸 리 면 웹 소켓 연결 이 중단 되 고 nginx 에 문제 가 생 긴 다 는 것 을 알 게 되 었 습 니 다.발생 원인: nginx 는 첫 번 째 통신 과 두 번 째 통신 을 기다 리 는 시간 차 이 를 초과 하여 설정 한 최대 대기 시간 을 초과 하 였 습 니 다. 쉽게 말 하면 시간 초과 입 니 다!
해결 방법 1 사실 nginx. conf 의 대응 localhost 에 있 는 이 몇 개의 매개 변 수 를 설정 하면 됩 니 다 proxyconnect_timeout;  proxy_read_timeout;  proxy_send_timeout;
해결 방법 2 발 심장 박동 가방, 원 리 는 효과 적 인 재 독 시간 내 에 통신 을 하고 재 독 시간 을 다시 갱신 하 는 것 이다.
설정 예시:
http {
    server {
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://webscoket;
            proxy_http_version 1.1;
            proxy_connect_timeout 4s;                #   1
            proxy_read_timeout 60s;                  #   2,    ,             
            proxy_send_timeout 12s;                  #   3
            proxy_set_header Upgrade $http_upgrade; 
            proxy_set_header Connection "Upgrade";  
        }
    }
}

위의 설정 2 에 대한 설명 은 서버 가 당신 에 게 가장 큰 시간 을 기다 리 는 것 입 니 다. 즉, 웹 소켓 이 nginx 리 트 윗 을 사용 할 때 위의 설정 2 를 사용 하면 60 초 안에 통신 이 없 으 면 끊 길 수 있 기 때문에 당신 의 요구 에 따라 설정 할 수 있 습 니 다.예 를 들 어 제 가 10 분 동안 설 치 했 습 니 다. 그러면 제 가 10 분 안에 통신 이 있 거나 10 분 안에 심장 박동 이 있 으 면 연결 이 끊 기지 않 고 개인 적 인 수 요 를 자세히 볼 수 있 습 니 다.
웹 소켓 과 소켓 의 관계 -  Socket 은 프로 토 콜 이 아니 라 TCP 나 UDP 를 편리 하 게 사용 하기 위해 추상 화 된 층 으로 응용 층 과 전송 제어 층 사이 에 있 는 인터페이스 입 니 다.두 호스트 가 통신 할 때 는 Socket 을 통 해 연결 해 야 하 며, Socket 은 TCP / IP 프로 토 콜 을 이용 하여 TCP 연결 을 만들어 야 합 니 다.TCP 연결 은 저층 의 IP 프로 토 콜 에 의존 하고 IP 프로 토 콜 의 연결 은 링크 층 등 더 낮은 차원 에 의존한다. -  웹 소켓 은 HTTP 와 같이 전형 적 인 응용 층 프로 토 콜 이다.  전체적으로 말 하면 Socket 은 전송 제어 층 인터페이스 이 고 WebSocket 은 응용 층 프로 토 콜 이다.

좋은 웹페이지 즐겨찾기