gpt4 book ai didi

node.js - 如何在 AWS 弹性 beantalk 上自定义 nginx 以对 Meteor 进行负载平衡?

转载 作者:IT老高 更新时间:2023-10-28 23:03:08 25 4
gpt4 key购买 nike

我在 AWS Elastic Beanstalk 上运行 Meteor。一切都启动并运行,除了它没有运行 Websockets 并出现以下错误:

WebSocket connection to 'ws://MYDOMAIN/sockjs/834/sxx0k7vn/websocket' failed: Error during WebSocket     handshake: Unexpected response code: 400 

我的理解是添加如下内容:


proxy_set_header 升级 $http_upgrade;
proxy_set_header 连接“升级”;

通过我的 YML 配置文件到代理配置。

通过我的 .exbextension 配置文件:

files:
"/etc/nginx/conf.d/proxy.conf" :
mode: "000755"
owner: root
group: root
content: |
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

我已经 ssh 进入服务器,我可以看到 proxy.conf 里面有这两行。

当我点击我的网络服务器时,我仍然看到“WebSocket 握手期间出错:”错误。

我的 beanstalk 负载配置了棒 session 和以下端口:

enter image description here enter image description here

顺便说一句,我确实看到了 https://meteorhacks.com/load-balancing-your-meteor-app.html我试图:


在端口 80 上使用粘性 session 启用 HTTP 负载平衡
在端口 8080 上启用 TCP 负载平衡,这允许 websocket
但似乎也无法让它发挥作用。

添加另一个在此处不起作用的 YAML 的镜头”:https://gist.github.com/adamgins/0c0258d6e1b8203fd051

任何帮助表示赞赏?

最佳答案

在 AWS 付费支持的大力帮助下,我完成了这项工作。现实情况是我离它不远了,它归结为一些 SED 语法。

这是目前有效的 (Gist):

option_settings:

- option_name: AWS_SECRET_KEY
value: <SOMESECRET>

- option_name: AWS_ACCESS_KEY_ID
value: <SOMEKEY>

- option_name: PORT
value: 8081

- option_name: ROOT_URL
value: <SOMEURL>

- option_name: MONGO_URL
value: <SOMEMONGOURL>

- option_name: MONGO_OPLOG_URL
value: <SOMEMONGOURL>

- namespace: aws:elasticbeanstalk:container:nodejs
option_name: ProxyServer
value: nginx

option_name: GzipCompression
value: true

- namespace: aws:elasticbeanstalk:container:nodejs:staticfiles

option_name: /public
value: /public

container_commands:

01_nginx_static:
command: |
sed -i '/\s*proxy_set_header\s*Connection/c \
proxy_set_header Upgrade $http_upgrade;\
proxy_set_header Connection "upgrade";\
' /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf

除此之外,您还需要进入负载均衡器并将监听器从 HTTP 更改为 TCP:

enter image description here

此处描述:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.elb.html )。

关于node.js - 如何在 AWS 弹性 beantalk 上自定义 nginx 以对 Meteor 进行负载平衡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27084124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com