sql >> Database teknologi >  >> NoSQL >> Redis

Konfiguration af Apache Reverse Proxy til hosting af Laravel Echo Server On Production

Fik det endelig.

Selvom min hjemmeside stadig skal have en SSL, er løsningen at få Apache for at omdirigere /socket.io til http://localhost:6001/socket.io allerede konfigureret til redis . Brug derefter 2.2.3 version af socket io .

Så min laravel-echo-server.json er ikke konfigureret til SSL.

Her er min laravel-echo-server.json :

{
   "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"
}

}

Hvordan jeg bruger 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,
  });

}

Og min apaxhe-konfiguration i min SSL virtualhost for mit domæne:

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 

Derudover ville det kræve en Node js-procesmanager at beholde laravel-echo-server løb. Så jeg oprettede echo-server.json og placerede følgende kode.

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

Dernæst installerer jeg pm2 procesleder. npm install pm2 -g og startede min tjeneste pm2 start echo-server.json --name="apps" .

Til sidst bruger jeg pm2 list for at se alle mine tjenester og pm2 startup for at holde mine tjenester kørende.




  1. Hvordan kan jeg forespørge mongodb ved hjælp af mongoid/skinner uden timeout?

  2. Hvordan implementerer man Redis Cache med Django Rest Framework?

  3. Redis Udgiv/abonner

  4. Installation af Apache CouchDB på Debian 9