웹소켓 연결(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
.