NGINX Websockets, dan Konfigurasi SSL

0

Saya mencoba mengatur koneksi websocket (wss). Domain saya menggunakan ssl (certbot) dan ditenagai oleh Nginx. Saya tidak yakin cara mengkonfigurasi /etc/nginx/sites-available/domain.comfile saya .

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

Saya menambahkan yang berikut ini ke dalam blok konfigurasi saya:

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;
}

Saat menghubungkan melalui wss://domain.com/:, saya mendapatkan pesan kesalahan

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

Sebagian besar contoh di luar sana menggunakan kerangka kerja nodejs untuk melayani situs mereka, tetapi saya menggunakan php.

PaulELI
sumber

Jawaban:

0

Titik akhir websocket Anda dikonfigurasikan dalam konfigurasi nginx yang disediakan sebagai host di lokasi /websocketdalam server, tetapi Anda mencoba untuk terhubung ke URL root wss://domain.com.

Sambungan websocket adalah sesi HTTP biasa (dengan bungkus TLS dalam kasus ini) hingga peningkatan berlangsung, jadi Anda harus memastikan URL yang digunakan untuk mengakses layanan mencakup semua perancang lintasan yang relevan, misalnya wss://domain.com/websocket.

Ossifrage Kosmik
sumber
Saya mengerti itu, agak ... Namun, saya mendapatkan WebSocket connection to 'wss://domain.com/websocket' failed: Error during WebSocket handshake: Unexpected response code: 500dengan pengaturan itu, jadi tidak yakin apakah itu konfigurasi saya atau port yang perlu dikonfigurasi?
PaulELI
Diinangi apa https://domain.com? 500 menunjukkan kesalahan server, kemungkinan besar dari back-end yang Anda proksi, ketika mencoba menanggapi permintaan soket web. Periksa aplikasi PHP dengan benar menerima permintaan soket web dan berbicara soket web sebagai tanggapan. Lognya dapat memberikan bantuan lebih lanjut dalam hal ini.
Cosmic Ossifrage
A php cms (OctoberCMS). pvpaissa.com/broadcast/panel/match/score/testslug Saya menggunakan plugin websocket. Ini berfungsi pada macbook lokal saya ... Masalahnya muncul setelah mencoba mengaturnya di server langsung saya (ubuntu 16.04).
PaulELI
Saya menemukan artikel ini, akan mencoba dan melihat apakah hasilnya berbuah besok modalduality.org/posts/…
PaulELI
Terima kasih, ini berhasil. Sekarang saya perlu melihat cara menjaga koneksi saya aktif.
PaulELI