时间:2021-05-19
在使用aws云服务的时候,90%要使用ELB服务作为负载均衡的解决方案,使用ELB要比自己搭建负载均衡要方便得多。
主要好处有:
1.可以随时监控实例的健康状态;
2.当服务器不正常时,ELB的报警策略将自动发送邮件通知运维人员
3.当服务器负载到达阈值时,通过auto scanning将自动加入新的服务器到集群中,同时负载降下去后将自动关闭多余的实例
4.ELB的各项监控指标较好地帮助判断服务器性能
AWS ELB nginx 启用代理协议
要使用aws elb服务器来做websocket负载均衡时,只能使用tcp模式。
代理协议是一种 Internet 协议,用于将连接信息从请求连接的源传递到请求连接到的目标。Elastic Load Balancing 使用代理协议版本 1,该版本使用用户可读的标头格式。
默认情况下,当对前端和后端连接使用传输控制协议 (TCP) 或安全套接字层 (SSL) 时,您的负载均衡器会将请求转发到后端实例,而不修改请求标头。如果您启用代理协议,则会向请求标头添加一个用户可读的标头,其中包含连接信息(如源 IP 地址、目标 IP 地址和端口号)。该标头随后作为请求的一部分发送到后端实例。
您可以在使用 SSL 和 TCP 协议的端口上启用代理协议。当使用非 HTTP 协议时,或者当使用 HTTPS 并且未在负载均衡器上终止 SSL 连接时,您可以使用代理协议捕获客户端的源 IP。
代理协议头
在您使用为 TCP/SSL 连接配置的负载均衡器时,代理协议标头有助于识别客户端的 IP 地址。因为负载均衡器会拦截客户端与您的后端实例之间的流量,因此您的后端实例的访问日志中将包含负载均衡器的 IP 地址而不是原始客户端的 IP 地址。您可以分析该请求的第一行,以检索该客户端的 IP 地址和端口号。
IPv6 标头中的代理地址是负载均衡器的公有 IPv6 地址。此 IPv6 地址与从该负载均衡器以 ipv6 或 dualstack 开头的 DNS 名称解析而来的 IP 地址相匹配。如果客户端使用 IPv4 进行连接,则代理标头中的地址是该负载均衡器的私有 IPv4 地址,不能在 EC2-Classic 网络外部通过 DNS 查找进行解析。
该代理协议行以回车符和换行符 ("\r\n") 结束,且具有以下形式:
实例:
安装AWS CLI工具
AWS 管理控制台是不支持启用代理协议的,因此需要通过命令行来启用。
配置授权连接参数文件。
# sudo vi ~/.aws/config[default]aws_access_key_id = YOU_ACCESS_IDaws_secret_access_key = YOU_SECRET_IDoutput = json OR bson OR textregion = PREFERRED_AWS_REGION类似这样的,aws_access_key_id、aws_secret_access_key、region根据你的aws实例填写。
AWS ELB启用代理协议
查看ELB支持的策略。响应包含支持的策略类型的名称和描述。
创建启用代理协议的策略
# aws elb create-load-balancer-policy --load-balancer-name YOU_ELB_NAME --policy-name EnableProxyProtocol --policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=True该命令创建了一个名称为EnableProxyProtocol的策略,并分配下列ELB属性"AttributeName=ProxyProtocol & AttributeValue=True"。
在指定端口上启用上述的策略
此命令将替代当前已启用的策略组。因此,--policy-names 选项必须同时指定您正在添加到列表中的策略和任何当前已启用的策略。
查看是否启用
如果要禁用代理协议可以这么做,同时,可通过第4步查看是否禁用了。
# aws elb set-load-balancer-policies-for-backend-server --load-balancer-name YOU_ELB_NAME --instance-port 80 --policy-names "[]"配置nginx接受代理协议头
nginx启用这个主要的目的是为了获取到真实的客户端IP地址。否则,都是ELB的内网IP地址。
当nginx启用了代理协议,$proxy_protocol_addr变量将是真实的客户端IP。
如果没有反代,nginx这么配置即可:
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
题记需要使用nginx的反向代理功能,测试环境为centos+NGINX1.8.0.跳过一些繁琐的问题,直接记录核心步骤(1)centos安装在VM中,因此需要
写在前面工程为前后端分离设计,使用Nginx为前端资源服务器,同时实现后台服务的反向代理。后台为JavaWeb工程,使用Tomcat部署服务。前端框架:Boot
nginx是一个高性能的HTTP和反向代理服务器。因此常用来做静态资源服务器和后端的反向代理服务器。本文主要记录使用nginx去部署使用vue搭建的前端项目,项
前言*随着Nginx大量被各互联网公司使用,常见的Nginx用来做反向代理WEB服务器、缓存服务器,nginx应用很广泛,今天我们来研究一下使用Nginx架设高
nginx代理了两台socket.io服务器。socket.io的工作模式是polling升级到websocket现象通过nginx请求服务时,出现了大量的40