Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Konfigurowanie serwera proxy Apache Reverse do hostowania serwera Laravel Echo w środowisku produkcyjnym

W końcu to dostałem.

Chociaż moja witryna musi nadal posiadać SSL, rozwiązaniem jest uzyskanie Apache przekierować /socket.io na http://localhost:6001/socket.io już skonfigurowany dla redis . Następnie użyj 2.2.3 wersja socket io .

Więc mój laravel-echo-server.json nie jest skonfigurowany dla SSL.

Oto mój 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"
}

}

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

}

I moja konfiguracja apaxhe na moim virtualhost SSL dla mojej domeny:

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 

Ponadto wymagałoby to, aby menedżer procesów Node js utrzymywał laravel-echo-server działanie. Więc stworzyłem echo-server.json i umieściłem następujący kod.

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

Następnie instaluję pm2 kierownik procesu. npm install pm2 -g i uruchomiłem moją usługę pm2 start echo-server.json --name="apps" .

Na koniec używam pm2 list aby wyświetlić wszystkie moje usługi i pm2 startup aby moje usługi działały.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak naprawić ostrzeżenia podczas uruchamiania obrazu redis:alpine Docker

  2. włóż klucz w redis

  3. Laravel + predis + klaster Redis - PRZENIESIONY / brak połączenia do 127.0.0.1:6379

  4. Jak ustawić/pobrać pandas.DataFrame do/z Redis?

  5. Jak bezpiecznie załadować hash i przekonwertować wartość na wartość logiczną, jeśli istnieje?