sql >> データベース >  >> NoSQL >> Redis

本番環境でLaravelEchoサーバーをホストするためのApacheリバースプロキシの設定

    ついにそれを手に入れました。

    私のウェブサイトはSSLを保持している必要がありますが、解決策はApacheを取得することです。 /socket.ioをリダイレクトします http://localhost:6001/socket.ioredis用にすでに構成されています 。次に、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,
      });
    
    }
    

    そして、SSL virtualhost内のapaxhe設定 私のドメインの場合:

    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 
    

    さらに、laravel-echo-serverを維持するためにNodejsプロセスマネージャーが必要になります ランニング。そこで、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. MongoDB $ indexOfArray

    2. (MongoDB Java)$pushを配列に

    3. エラー:redis:6379でRedisに接続できませんでした:名前またはサービスが不明です

    4. Azureはmongodbやredisなどをサポートしていますか?