首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在google app engine上使用带有nginx反向代理的laravel-websockets?

如何在google app engine上使用带有nginx反向代理的laravel-websockets?
EN

Stack Overflow用户
提问于 2019-04-23 23:22:48
回答 1查看 1.8K关注 0票数 1

我正在尝试将laravel-websockets部署到谷歌应用程序引擎服务中,而不是管理ssl证书。应用程序引擎“谷歌前端”将只转发端口80和443到在端口8080监听的自定义用户nginx.conf文件。因此,部署后没有错误,google stackdriver日志显示websocket服务正在接受连接,但前端服务没有显示任何内容,没有错误,也没有成功。那么我错过了什么?

此服务的当前nginx.conf为:

代码语言:javascript
复制
daemon off;

user  root;
worker_processes  auto;
error_log /dev/stderr info;

events {
    worker_connections  4096;
}

http {
    access_log /dev/stdout;

    server {
        listen 8080;

        location / {
            proxy_pass             http://127.0.0.1:6001;
            proxy_read_timeout     60;
            proxy_connect_timeout  60;
            proxy_redirect         off;

            # Allow the use of websockets
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
}

和我的app.yaml文件:

代码语言:javascript
复制
runtime: custom
env: flex

service: websockets

manual_scaling:
  instances: 1

resources:
  cpu: 2
  memory_gb: 2
  disk_size_gb: 10

runtime_config:
  document_root: public
  enable_stackdriver_integration: true

readiness_check:
  app_start_timeout_sec: 1800

env_variables:
  // all basic laravel env here plus:

  BROADCAST_DRIVER: pusher

  PUSHER_APP_ID: testing
  PUSHER_APP_KEY: testing
  PUSHER_APP_SECRET: testing

我在broadcast.php文件中的推送器配置是

代码语言:javascript
复制
'pusher' => [
    'driver'  => 'pusher',
    'key'     => env('PUSHER_APP_KEY'),
    'secret'  => env('PUSHER_APP_SECRET'),
    'app_id'  => env('PUSHER_APP_ID'),
    'options' => [
        'host'      => 'my-websockets-service-generated-domain.appspot.com',
        'port'      => '443',
        'scheme'    => 'https',
        'encrypted' => true
    ],
],

最后是我在客户端的设置:

代码语言:javascript
复制
window.Pusher = require('pusher-js')

const echo = new Echo({
  authEndpoint: 'my-backend-service-generated-domain.appspot.com/broadcasting/auth',
  broadcaster: 'pusher',
  key: 'testing',
  httpHost: 'my-websockets-service-generated-domain.appspot.com',
  httpsPort: 443,
  disableStats: true,
  encrypted: true
})

google堆栈驱动程序记录:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 17:33:55

我有个主意!在客户端的Echo设置中,我需要使用wsHost,并将wsPortwssPort更新为使用80和443,nginx反向代理将其代理到6001

代码语言:javascript
复制
broadcaster: 'pusher',
key: 'testing',
wsHost: 'my-websockets-service-generated-domain.appspot.com',
wsPort: 80,
wssPort: 443,
disableStats: true,
encrypted: true
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55814533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档