Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

से WebSocket कनेक्शन विफल:WebSocket हैंडशेक के दौरान त्रुटि:अनपेक्षित प्रतिक्रिया कोड:521

यह दस्तावेज़ उन लोगों के लिए है जो क्लाइंट प्रोजेक्ट और रेडिस-सर्वर के बीच अलग सर्वर के साथ लार्वा इको सर्वर और nginx और सॉकेट.आईओ और रेडिस-सर्वर का उपयोग करते हैं।

1) संपादित करें /etc/redis/redis.conf

bind 127.0.0.1
supervised no

करने के लिए

bind 0.0.0.0
supervised systemd

2) अपडेट करें /etc/systemd/system/redis.service [Service] के अंतर्गत

Type=notify
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf  --supervised systemd

3) Nginx /etc/nginx/sites-enabled/reverse-proxy.conf

server {
  listen        443 ssl;
  listen        [::]:443 ssl;
  server_name   mysitecom;

  error_log     /var/log/nginx/proxy-error.log error;

  # Start the SSL configurations
  ssl                         on;
  ssl_certificate             /etc/nginx/certs/mysitecom.pem;
  ssl_certificate_key         /etc/nginx/certs/mysitecom.key;
  ssl_session_timeout         3m;
  ssl_session_cache           shared:SSL:50m;
  ssl_protocols               TLSv1.1 TLSv1.2;

  # Diffie Hellmann performance improvements
  ssl_ecdh_curve              secp384r1;

  location /socket.io {
    proxy_pass                          http://mysitecom:2096;
    proxy_http_version 1.1;
    proxy_set_header Upgrade            $http_upgrade;
    proxy_set_header Connection         "upgrade";
    proxy_set_header Host               $host;
    proxy_set_header X-Real-IP          $remote_addr;
    proxy_buffers 16 4k;
    proxy_buffer_size 2k;

    proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto  https;
    proxy_set_header X-VerifiedViaNginx yes;
    proxy_read_timeout                  2h;
    proxy_connect_timeout               2h;
    proxy_redirect                      off;
  }
}

4) laravel-echo-server.json

{
    "authHost": "https://mysitecom",
    "authEndpoint": "/broadcasting/auth",
    "clients": [
        {
            "appId": "e45c056ec8ca8bd7",
            "key": "88d316b5cccafbc5e905aa9ee13e63f7"
        }
    ],
    "database": "redis",
    "databaseConfig": {
        "redis": {
            "host": "0.0.0.0",
            "port": "6379"
        },
        "sqlite": {
            "databasePath": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": true,
    "host": null,
    "port": "2096",
    "protocol": "https",
    "socketio": {},
    "secureOptions": 67108864,
    "sslCertPath": "/etc/nginx/certs/mysitecom.pem",
    "sslKeyPath": "/etc/nginx/certs/mysitecom.key",
    "sslCertChainPath": "",
    "sslPassphrase": "",
    "subscribers": {
        "http": true,
        "redis": true
    },
    "apiOriginAllow": {
        "allowCors": true,
        "allowOrigin": "*",
        "allowMethods": "GET, POST",
        "allowHeaders": "Origin, Content-Type, X-Auth-Token, X-Requested-With, Accept, Authorization, X-CSRF-TOKEN, X-Socket-Id"
    }
}

नोट: किसी ऐसे व्यक्ति के लिए जो DNS को cloudflare . से जोड़ता है कृपया डिफ़ॉल्ट सॉकेट.आईओ पोर्ट 6001 को यहां निम्न में बदलें।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. डॉकर कंपोज़ में रेडिस पोर्ट बदलना काम नहीं कर रहा है

  2. रिक्त स्थान वाली कुंजियों का उपयोग करके रेडिस से मूल्य कैसे प्राप्त करें?

  3. डेटा की तुलना में रेडिस 10 गुना अधिक मेमोरी उपयोग

  4. Node.js, Socket.io, Redis पब/उप उच्च मात्रा, कम विलंबता कठिनाइयाँ

  5. क्या रेडिस की स्पेस नोटिफिकेशन को पब/सब चैनल के बजाय रेडिस स्ट्रीम में पुश किया जा सकता है