Xin chào. Tôi đang cố gắng phân phối một cuộc trò chuyện đơn giản bằng cách sử dụng phiên bản beta 5.0.0 (với puma) làm việc trên chế độ sản xuất (trong localhost không có vấn đề gì) .RoR 5.0.0 ActionCable wss WebSocket handshake: Mã phản hồi không mong muốn: 301
Đây là Nginx cấu hình của tôi:
upstream websocket {
server 127.0.0.1:28080;
}
server {
listen 443;
server_name mydomain;
ssl_certificate ***/server.crt;
ssl_certificate_key ***/server.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers
HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/jenkins.access.log;
location/{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:3000;
proxy_read_timeout 90;
proxy_redirect http://localhost:3000 https://mydomain;
location /cable/{
proxy_pass http://websocket/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
break;
}
}
Đây là config/redis/cable.yml
sản xuất: url: redis: // localhost: 6379/1
phát triển: url: redis: // localhost: 6379/2
kiểm tra: url: redis: // localhost: 6379/3
và config/môi trường/production.rb
# Action Cable endpoint configuration
config.action_cable.url = 'wss://mydomain/cable'
# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
config.force_ssl = false
Và đây là lỗi tôi nhận:
ứng dụng - [...]. Js: 27 Kết nối WebSocket với 'wss: // mydomain/cable' không thành công: Lỗi trong khi bắt tay WebSocket: Mã phản hồi không mong muốn: 301
Bất kỳ mẹo nào? :) Cảm ơn
thay đổi địa điểm/cáp/{...} để/cáp trả lại cho tôi "kết nối WebSocket để ' wss: // mydomain/cable 'không thành công: Lỗi khi bắt tay WebSocket: Mã phản hồi không mong muốn: 502 " –
Cổng lỗi - đảm bảo bạn có dịch vụ đang chạy trên cổng 28080 –
Tường lửa đang chặn cổng đó, bây giờ tôi đã chuyển đổi màu đỏ trên 4443 và "upstream websocket" {127.0.0.1:4443} -> Lỗi trong quá trình bắt tay WebSocket: Mã phản hồi không mong muốn: 404 Ít nhất mã lỗi của tôi đang thay đổi xd –