【问题标题】:How to resolve 504 Gateway Timeout and WebSockets errors with Nginx and Express app如何使用 Nginx 和 Express 应用程序解决 504 Gateway Timeout 和 WebSockets 错误
【发布时间】:2016-03-27 03:46:13
【问题描述】:

当我在本地运行我的 express 应用程序时,没有任何问题,但由于我已将其放置在运行 Nginx Web 服务器的 AWS EC2 实例上,所以每当我访问指定域时都会出现一些问题。

每当我访问域时,它都会为从公共目录提供的 main.css 文件显示 504 网关超时。不确定它是否相关,但我在 Express 中使用 Jade 模板,并且 sass 文件在运行时被编译到 public/css 目录。

以下是请求标头: 获取 /css/main.css HTTP/1.1 主机:dispatch.nucleus.technology 连接:保持活动 Pragma:无缓存 缓存控制:无缓存 接受:文本/css,/;q=0.1 用户代理:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36 DNT: 1 推荐人:http://dispatch.nucleus.technology/ 接受编码:gzip、deflate、sdch 接受语言:en-US,en;q=0.8

似乎还有一个 websocket 错误: WebSocket 连接到“ws://dispatch.nucleus.technology/socket.io/?EIO=3&transport=websocket&sid=W0qJNlmaVdFbKoeBAAAA”失败:WebSocket 握手期间出错:意外响应代码:400

我已经修复了 css 问题,似乎以 root 身份运行应用程序可以解决它,但我不确定为什么 - 如果有人对此有所了解,那将非常有帮助。

至于 websocket 错误,尽管以 root 身份运行应用程序,我仍然收到该错误。

【问题讨论】:

    标签: node.js amazon-web-services express nginx socket.io


    【解决方案1】:

    将此添加到 nginx 配置应该可以消除 websocket 错误:

    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        ... 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-27
      • 1970-01-01
      • 2021-11-03
      • 2022-12-18
      • 1970-01-01
      • 2017-01-04
      • 2014-12-14
      相关资源
      最近更新 更多