sql >> Database >  >> NoSQL >> Redis

Apache Reverse Proxy configureren voor het hosten van Laravel Echo Server op productie

Eindelijk begrepen.

Hoewel mijn website nog steeds een SSL-certificaat moet hebben, is de oplossing om Apache . te krijgen om /socket.io om te leiden naar http://localhost:6001/socket.io al geconfigureerd voor redis . Gebruik dan 2.2.3 versie van socket io .

Dus mijn laravel-echo-server.json is niet geconfigureerd voor SSL.

Hier is mijn 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"
}

}

Hoe ik laravel-echo-server.json gebruik:

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

}

En mijn apaxhe-configuratie binnen mijn SSL virtualhost voor mijn domein:

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 

Bovendien zou een Node js-procesmanager nodig zijn om de laravel-echo-server rennen. Dus maakte ik echo-server.json en plaatste de volgende code.

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

Vervolgens installeer ik pm2 proces Manager. npm install pm2 -g en startte mijn service pm2 start echo-server.json --name="apps" .

Als laatste gebruik ik pm2 list om al mijn services te bekijken en pm2 startup om mijn diensten draaiende te houden.




  1. Vraag Mongodb op maand, dag, jaar... van een datetime

  2. MongoDB:Is het mogelijk om een ​​hoofdletterongevoelige query te maken?

  3. Hoe hervat hash-slots van een bepaald knooppunt in redis-cluster in geval van een harde storing?

  4. Hoe de MongoDB-insertprestaties te verbeteren