AWS 创建和配置弹性负载均衡器,并配置运行状况检查
使用aws负载均衡器,可以将单一入口的流量分发到多个后端服务器。同时可以结合Auto Scaling使用,实现弹性扩容。
使用指南: 使用 Elastic Load Balancing 在 Auto Scaling 组中分配传入的应用程序流量
创建负载均衡器操作指南:创建和配置弹性负载均衡器
当创建负载均衡器时,需要配置监听的端口,以及后端服务器的端口。比如http服务监听80端口,后端服务为nginx监听80端口。
这里负载均衡器可以配置健康检查,当后端服务异常时,负载均衡器会自动将流量转发到其他后端服务。
nginx 配置健康检查如下
在 nginx 中增加健康检查路径配置如下:
1
2
3
4
|
location /health {
add_header Content-Type text/plain;
return 200 'I am healthy';
}
|
需要在负载均衡器中也添加相同健康检查路径,如果配置正确,就可以看到负载均衡器中的健康检查状态为 healthy
如果是默认安装的 nginx,那么可能会无法检查通过,这里需要检查 nginx.conf 文件配置,
查看 listen 80
是否有 default_server
,如果不是,则需要添加default_server
,正确配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
http {
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location = /health {
add_header Content-Type text/plain;
return 200 'I am healthy';
}
}
}
|
兜底配置的 listen 为 80 default_server 详细说明: Nginx中server_name的一些无用冷知识
参考