nginx 퍼 가기 websocket 보고 400 오류 해결
1861 단어 이상 해결 편
1failed: Error during WebSocket handshake: Unexpected response code: 400 。이 오 류 는 로 컬 테스트 환경 과 비 nginx 퍼 가기 에 문제 가 없 으 므 로 nginx 퍼 가기 부분 에 문제 가 발생 해 야 한다 고 추정 합 니 다.
그래서 구 글 의 도움 으로 socket. io 공식 issues 에서 이 문제 에 대한 토론, 링크 를 보 았 습 니 다.https://github.com/socketio/socket.io/issues/1942
해결 방안 은 토론 구역 에서 말 한 방안 을 보 았 습 니 다. 문 제 는 nginx 설정 파일 에 있 습 니 다. nginx. conf 파일 을 수정 해 야 합 니 다.Liux 터미널 에서 vim / etc / nginx / nginx. conf 를 두 드 리 고 location 이라는 위 치 를 찾 으 면 설정 파일 은 다음 과 같 습 니 다.
server {
listen 80;
server_name school.godotdotdot.com;
charset utf-8;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
그 중에서 가장 중요 한 것 은 아래 세 줄 입 니 다.
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 그 중 첫 번 째 줄 은 nginx 에 게 HTTP / 1.1 통신 프로 토 콜 을 사용 하 라 고 알려 주 는 것 입 니 다. 이것 은 websocket 에서 사용 해 야 할 프로 토 콜 입 니 다.
두 번 째 줄 과 세 번 째 줄 은 nginx 에 게 WebSocket 을 사용 하려 면 http 업그레이드 요청 에 응답 하 라 고 알려 줍 니 다.