NGINX 웹소켓 및 SSL 구성

NGINX 웹소켓 및 SSL 구성

웹소켓 연결(WSS)을 설정하려고 합니다. 내 도메인은 SSL(certbot)을 사용하고 Nginx로 구동됩니다. 파일을 구성하는 방법을 잘 모르겠습니다 /etc/nginx/sites-available/domain.com.

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
...
}

구성 블록에 다음을 추가했습니다.

location /websocket {
    proxy_pass         https://domain.com;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection "upgrade";
    proxy_set_header   Host $host;
}

다음을 통해 연결하는 경우 wss://domain.com/:

WebSocket connection to 'wss://domain.com/' failed: 
Error during WebSocket handshake: Unexpected response code: 200

대부분의 예제는 nodejs 프레임워크를 사용하여 웹사이트를 제공하지만 저는 PHP를 사용하고 있습니다.

답변1

/websocket웹소켓 엔드포인트는 제공된 nginx 구성에서 서버 내에서 호스팅되도록 구성되어 있지만 루트 URL에 연결을 시도하고 있습니다 wss://domain.com.

업그레이드 전에 Websocket 연결은 일반 HTTP(이 경우 TLS 래퍼 사용) 세션이었으므로 서비스에 액세스하는 데 사용되는 URL에 모든 관련 경로 지정자가 포함되어 있는지 확인해야 합니다 wss://domain.com/websocket.

관련 정보