Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Mengonfigurasi Apache Reverse Proxy Untuk Hosting Laravel Echo Server Saat Produksi

Akhirnya mengerti.

Sementara website saya masih harus memiliki SSL, solusinya adalah mendapatkan Apache untuk mengalihkan /socket.io ke http://localhost:6001/socket.io sudah dikonfigurasi untuk redis . Kemudian gunakan 2.2.3 versi socket io .

Jadi laravel-echo-server.json saya tidak dikonfigurasi untuk SSL.

Ini laravel-echo-server.json saya :

{
   "authHost": "https://domainName.com",
   "authEndpoint": "/broadcasting/auth",
   "clients": [
      {
        "appId": "xxxxxxx",
        "key": "xxxxxxxxxxx"
      }
   ],
   "database": "redis",
   "databaseConfig": {
      "redis": {},
      "sqlite": {
          "databasePath": "/database/laravel-echo-server.sqlite"
      }
   },
   "devMode": false,
   "host": null,
   "port": "6001",
   "protocol": "http",
   "socketio": {},
   "sslCertPath": "",
   "sslKeyPath": "",
   "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"
}

}

Bagaimana saya menggunakan laravel-echo-server.json:

import Echo from "laravel-echo";
window.io = require('socket.io-client');
// Have this in case you stop running your laravel echo server
if (typeof io !== 'undefined') {
  window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.location.hostname,
  });

}

Dan konfigurasi apaxhe saya dalam virtualhost SSL saya untuk domain saya:

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]
RewriteCond %{QUERY_STRING} transport=websocket    [NC]
RewriteRule /(.*)           ws://localhost:6001/$1 [P,L]

ProxyPass        /socket.io http://localhost:6001/socket.io
ProxyPassReverse /socket.io http://localhost:6001/socket.io 

Selain itu akan memerlukan manajer proses Node js untuk menjaga laravel-echo-server berlari. Jadi saya membuat echo-server.json dan letakkan kode berikut.

{
  "name": "apps",
  "script": "laravel-echo-server",
  "args": "start"
}

Selanjutnya, saya menginstal pm2 manajer proses. npm install pm2 -g dan memulai layanan saya pm2 start echo-server.json --name="apps" .

Terakhir saya menggunakan pm2 list untuk melihat semua layanan saya dan pm2 startup agar layanan saya tetap berjalan.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. tidak dapat mematikan redis-server di linux

  2. masalah otentikasi dengan saluran pribadi laravel dan server-laravel-echo

  3. Bisakah Redis 6 memanfaatkan CPU multi-core?

  4. Tidak dapat memperoleh hasil dari Redis menggunakan Crud Repository di Spring Boot?

  5. Bagaimana menangani pasangan pengguna dan soket dengan node.js + redis