Redis
 sql >> база данни >  >> NoSQL >> Redis

Конфигуриране на Apache Reverse Proxy за хостване на Laravel Echo Server при производство

Най-накрая го разбрах.

Въпреки че моят уебсайт все още трябва да носи SSL, решението е да взема Apache за пренасочване на /socket.io към http://localhost:6001/socket.io вече конфигуриран за redis . След това използвайте 2.2.3 версия на socket io .

Така че моят laravel-echo-server.json не е конфигуриран за SSL.

Ето моят 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"
}

}

Как използвам 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,
  });

}

И моята конфигурация на apaxhe в моя SSL virtualhost за моя домейн:

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 

Освен това ще е необходим мениджър на процеси на Node js, за да запази laravel-echo-server бягане. Затова създадох echo-server.json и постави следния код.

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

След това инсталирам pm2 мениджър на процеси. npm install pm2 -g и стартирах моята услуга pm2 start echo-server.json --name="apps" .

Накрая използвам pm2 list за да видите всички мои услуги и pm2 startup за да поддържам услугите ми да работят.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Предайте препратка към екземпляр на Redis към манипулатор на Gorilla/Mux

  2. Абонирайте се за множество канали с една и съща тема Джедаи

  3. конвейер срещу транзакция в redis

  4. Laravel - Последователно изпълнение на задачи

  5. Опростеното използване на EM::Synchrony#sync причинява грешка в "root fiber" FiberError -- моя грешка?