社区
其他技术讨论专区
帖子详情
amazon-web-services – 如何为WebSocket协议配置AWS ELB和Nginx?
weixin_38048154
2019-09-12 01:05:26
我在AWS中有N层架构Web应用程序. HTTP请求流顺序由此: > Nginx-ELB(公共ELB,代理Nginx)> Nginx(公共子网中的EC2实例,侦听端口80,代理到AP-ELB)> AP-ELB(内部ELB,AP-Server代理)> AP-Server(私有子网中的EC2实例,侦听端口80) 我想将WebSocket功能应用于此体系结构.如何配置两层ELB和Nginx后面?
...全文
143
1
打赏
收藏
amazon-web-services – 如何为WebSocket协议配置AWS ELB和Nginx?
我在AWS中有N层架构Web应用程序. HTTP请求流顺序由此: > Nginx-ELB(公共ELB,代理Nginx)> Nginx(公共子网中的EC2实例,侦听端口80,代理到AP-ELB)> AP-ELB(内部ELB,AP-Server代理)> AP-Server(私有子网中的EC2实例,侦听端口80) 我想将WebSocket功能应用于此体系结构.如何配置两层ELB和Nginx后面?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38061608
2019-09-12
打赏
举报
回复
使用另一个端口用于ws://协议,因为ELB不允许在不同模式(HTTP / TCP)中侦听相同的端口.例如:ws:// Nginx-ELB:8081 / ws-endpoint 这分为两部分解释. Nginx部分 >在端口80上侦听HTTP,然后代理到AP-ELB端口80.>在端口8081上侦听WebSocket,然后代理到AP-ELB端口8081. 关于WebSocket代理,您可以参考这个configuration. 配置示例如下: # Web server { listen 80; server_name localhost; charset utf-8; error_log /var/log/nginx/lnmnt/error.log error; access_log off; set $upstream_endpoint <ap_elb_domain_name>; more_set_headers 'Cache-Control: max-age=0, no-cache, no-store'; location / { proxy_connect_timeout 75; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass $upstream_adm_endpoint; } } # WebSocket server { listen 8081 proxy_protocol; server_name localhost; error_log /var/log/nginx/lnmnt/websocket.error.log error; access_log off; real_ip_header proxy_protocol; set $upstream_ws_endpoint <ap_elb_domain_name>:8081; location / { proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass $upstream_ws_endpoint; } } ELB部分 Nginx的-ELB 创建端口转发如下: > 80(HTTP)转发到80(HTTP)> 8081(TCP)转发到8081(TCP) 然后使用您的AWS CLI执行: aws elb create-load-balancer-policy \ --load-balancer-name Nginx-ELB \ --policy-name EnableProxyProtocol \ --policy-type-name ProxyProtocolPolicyType \ --policy-attributes AttributeName=ProxyProtocol,AttributeValue=True aws elb set-load-balancer-policies-for-backend-server \ --load-balancer-name Nginx-ELB \ --instance-port 8081 \ --policy-names EnableProxyProtocol AP-ELB 创建端口转发如下: > 80(HTTP)转发到80(HTTP)> 8081(TCP)转发到80(TCP) 不要为此ELB应用任何负载均衡器政策! 这部分让我头疼了好几天.如果对两个ELB应用相同的策略,则永远无法获得正确的结果. 现在,使用AWS ELB和Nginx享受您的WebSocket.
使用
AWS
的
ELB
服务时为
Nginx
启用代理
协议
的步骤讲解
在使用
aws
云服务的时候,90%要使用
ELB
服务作为负载均衡的解决方案,使用
ELB
...
AWS
ELB
nginx
启用代理
协议
要使用
aws
elb
服务器来做
web
socket
负载均衡时,只能使用tcp模式。 代理
协议
是一种 Internet
协议
,用于将连接
网约车项目-my-online-taxi.zip
7. **负载均衡与分布式**:对于大规模的网约车服务,可能需要使用负载均衡技术,如
Nginx
或
AWS
的
ELB
,以及分布式系统架构,以应对高并发访问。 8. **测试与部署**:项目可能包含了自动化测试脚本,例如单元测试和...
一流聊天天室
此外,考虑到聊天室可能需要处理大量并发连接,后端服务器可能采用了负载均衡和集群技术,如
Nginx
反向代理和负载均衡
配置
,或者使用云服务如
AWS
的 Elastic Load Balancing (
ELB
)。 总结来说,【一流聊天天室】是一...
RandomChat:RandomChat是一个
Web
应用程序,它使人们可以选择标签(关注中心),并与其他选择相同标签的人一起加入随机房间
6. **负载均衡**:随着用户数量的增长,可能需要使用负载均衡技术,如
Nginx
或
AWS
的
ELB
,来分发流量,确保服务的稳定和响应速度。 7. **云服务**:可能部署在
AWS
、Google Cloud或Azure等云平台上,以利用其弹性和可...
secure-realtime-multiplayer-game
使用负载均衡技术,如
Nginx
或
AWS
的
ELB
,可以将玩家流量分散到多个服务器,提高系统的可扩展性和稳定性。 7. **数据库**:存储玩家信息、游戏记录等数据,可以选择关系型数据库如MySQL或非关系型数据库如MongoDB。...
其他技术讨论专区
476
社区成员
790,963
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章