当前位置: 首页 > 知识库问答 >
问题:

带有Laravel echo服务器的WebSocket:502坏网关

江新
2023-03-14

我一个多星期都找不到解决办法。在dev服务器上一切正常,但在生产环境中则不然。我没有力量,我呼吁各位同事:)

我在Socket上使用Laravel echo服务器。io使用CloudFlare。尝试连接时,我收到一个错误:WebSocketError:收到意外状态代码(502坏网关

Ubuntu 16.04。7 LTS,Laravel Echo服务器:1.6。1,NodeJs:v12。19

拉威尔回声服务器。json:

    {
    "authHost": "http://localhost",
    "authEndpoint": "/broadcasting/auth",
    "clients": [
        {
            "appId": "...",
            "key": "..."
        }
    ],
    "database": "redis",
    "databaseConfig": {
        "redis": {
            "password": "...",
            "port": "...",
            "db": 0
        },
        "sqlite": {}
    },
    "devMode": true,
    "host": "",
    "port": "6001",
    "protocol": "http",
    "socketio": {
        "transports": ["websocket", "polling"]
    },
    "secureOptions": 67108864,
    "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"
    }
}

Nginx主机:

    server {
        listen 8443 ssl;
        server_name domain.tld;       
        ssl_certificate /etc/nginx/ssl/my.crt;
        ssl_certificate_key  /etc/nginx/ssl/my.key;
        error_log /var/log/nginx/domain.tld/ws.log info;

        location /ws {
                proxy_pass http://127.0.0.1:6001;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
        }
}

启动后EchoServer我看到:

L A R A V E L  E C H O  S E R V E R

version 1.6.1

⚠ Starting server in DEV mode...

✔  Running at localhost on port 6001
✔  Channels are ready.
✔  Listening for http events...
✔  Listening for redis events...

Server ready!

好,接下来:

$ curl 127.0.0.1:6001
> OK

下一个:

websocat wss://domain.tld:8443/ws

我得到了一个错误:

websocat: WebSocketError: Received unexpected status code (502 Bad Gateway)

Laravel echo服务器正在运行,我可以看到它的事件。尝试在laravel echo服务器中更改主机。json(127.0.0.1,localhost,null,0.0.0.0),在nginx代理到localhost中,127.0。0.1-没有任何帮助。我尝试在nginx主机中添加上游,但没有帮助。这些信息也无助于:https://github.com/tlaverdure/laravel-echo-server/issues/273

请帮助:)

共有2个答案

钱卓君
2023-03-14

我不知道问题出在哪里,但我找到了解决办法。我更新了很多:更新了Nginx到1.19.1,可能安装了一些额外的模块。安装npm不是全局的,而是本地的。而且奏效了...

注意:这仅在写入位置/套接字时有效。木卫一。这不是重点:“authHost”:http://localhost"

唐睿
2023-03-14

我想这是你的问题。

{
  "authHost": "http://localhost" // This should be your domain name
}
 类似资料:
  • 在通过eclipse上传应用程序后,我收到了502坏网关错误,我不明白为什么会发生这种情况? 我通过AWS弹性豆茎控制台创建了一个示例应用程序。然后我在eclipse中加载了服务器。之后我发布了它,并在EB控制台中获得了“环境更新成功完成”的消息。然而,当我转到网址时,我得到一个502坏网关错误。我看了日志,看看出了什么问题,但我唯一发现的是 连接到上游时失败(111:连接被拒绝),客户端:172

  • 我有一个使用NodeJS、MongoDB(Mongoose作为驱动程序)和ExpressJS的完整web应用程序。 这个项目在我的本地机器上运行得很好。今天我决定把一切都转移到生产上。我正在使用Google App Engine来托管我的应用程序,并使用Compose(形式上是MongoHQ)来托管我的数据库。 App Engine完美地服务于我的应用程序,尽管我的API似乎不起作用。我的API由

  • 我面临的问题与孔,我创建了我的服务和我的路线完全一样的5分钟快速入门的孔的留档,但我只改变了一些参数设置服务与我自己的apilocalhost:3000。 这就是我的设置: Kong在docker上运行(Docker与我的服务运行在同一台机器上) http://localhost:3000/users我的服务总是返回JSON{状态:确定} 这就是我为创建我的服务所做的。 我使用以下参数创建了我的服

  • 我的nginx.conf文件是这样的: 现在,在打开一些URL时,它抛出了502个坏网关,但对其他URL则没有。我犯的错误。日志为: 2019/01/10 23:53:39[错误]12139#12139:*5 recv()在从上游读取响应头时失败(104:由对等方重置连接),客户端:127.0。0.1,服务器:localhost,请求:“GET/wordpress/HTTP/2.0”,上游:fas

  • 我创建了一个简单的AWS Lambda函数,使用python 3.6添加两个数字。它读取 Lambda函数 JSON主体

  • 我有一个来自http工具包的Websocket连接(Clojure,它工作得很好)。我从客户端发送ping以确保我们仍然保持连接,并且在那里一切正常。我的问题是,在这种情况下,人们是否会从服务器ping客户端? 我试图设置一些东西,如果我没有得到响应,就从服务器上删除频道,但是设置定时进程和改变状态来跟踪乒乓周期不是很方便,所以它变得有点难看。然后我就想,服务器能处理几十万个同时连接,我是不是就应