【问题标题】:Websocket handshake returns error 400 with engintronWebsocket 握手使用 engintron 返回错误 400
【发布时间】:2019-04-13 12:00:12
【问题描述】:

将 Apache 服务器与 Engintron 一起使用,并且我正在运行一个 expressJS 应用程序,它接受 socket.io 连接来处理 websocket 调用。

但是每当主站点(在 PHP 中)尝试调用 nodeJS 应用程序时,它会在握手时返回错误 400,然后退回到长轮询。

【问题讨论】:

    标签: node.js express nginx websocket socket.io


    【解决方案1】:

    因为我花了很多时间来弄清楚它是如何工作的,所以我想我会在这里发布问题和答案,这样其他人,或者我未来的自己就不必在这上面花费无数时间,因为互联网上没有太多关于它的信息。

    所有答案都指向我启用 mod_proxy_wstunnel,但实际上这不是我的实际问题。当我禁用 Engintron 并发现它开始工作时,我意识到了这一点。

    所以你需要做的是访问 Engintron,转到 Edit proxy_params_common,并确保它看起来像这样:

    # /**
    #  * @version    1.9.3
    #  * @package    Engintron for cPanel/WHM
    #  * @author     Fotis Evangelou (https://kodeka.io)
    #  * @url        https://engintron.com
    #  * @copyright  Copyright (c) 2018 - 2019 Kodeka OÜ. All rights reserved.
    #  * @license    GNU/GPL license: https://www.gnu.org/copyleft/gpl.html
    #  */
    
    # General Proxy Settings
    proxy_pass                    $PROXY_SCHEME://$PROXY_DOMAIN_OR_IP:$PROXY_TO_PORT;
    #proxy_hide_header             Upgrade;
    proxy_http_version            1.1;                # Always upgrade to HTTP/1.1
    proxy_set_header              Accept-Encoding ""; # Optimize encoding
    proxy_set_header              Upgrade $http_upgrade;
    proxy_set_header              Connection "upgrade";      # Enable keepalives
    proxy_set_header              Host $host;
    proxy_set_header              Proxy "";
    proxy_set_header              Referer $http_referer;
    proxy_set_header              X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header              X-Forwarded-Host $PROXY_FORWARDED_HOST;
    proxy_set_header              X-Forwarded-Port $server_port;
    proxy_set_header              X-Forwarded-Proto $scheme;
    proxy_set_header              X-Forwarded-Server $host;
    proxy_set_header              X-Real-IP $remote_addr;
    proxy_set_header              CF-Connecting-IP $http_cf_connecting_ip;
    proxy_set_header              CF-Visitor $http_cf_visitor;
    
    # Buffers
    proxy_buffers                 256 16k;
    proxy_buffer_size             128k;
    proxy_busy_buffers_size       256k;
    proxy_temp_file_write_size    256k;
    
    # Timeouts
    proxy_connect_timeout         300s;
    proxy_read_timeout            300s;
    proxy_send_timeout            300s;
    

    主要区别:

    #proxy_hide_header             Upgrade;
    proxy_set_header              Upgrade $http_upgrade;
    proxy_set_header              Connection "upgrade";      # Enable keepalives
    

    【讨论】:

      猜你喜欢
      • 2013-06-05
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      相关资源
      最近更新 更多