负载均衡器无法与后端连接

Sub*_*a M 0 oracle-cloud-infrastructure

我已经在 OCI 计算上部署了 Spring boot 应用程序,并且它的组合很好。计算是使用公共 ip 创建的,并更新了安全列表以允许来自 Internet 的连接。但是,我无法从互联网上到达终点。为此,我想到了配置负载均衡器。

在此处输入图片说明

在单独的子网 (10.0.1.0/24)、路由表和安全列表中创建负载均衡器。将 LB 的安全列表配置为将所有协议数据包发送到计算的 CIDR(10.0.0.0/24) 并配置计算的安全列表以接受来自 LB 的数据包。我期待 LB 与后端建立联系。但是,它不是。

在此处输入图片说明

我可以从互联网上访问 LB :-

在此处输入图片说明

Lb 的路由表,其中包含通过 Internet 网关路由的所有 ip。没有为计算的 CIDR 定义路由,因为它在 VCN 中。

在此处输入图片说明

LB 有自己的安全列表,它允许输出数据包计算和从互联网传入,如下所示:

在此处输入图片说明 在此处输入图片说明

计算从 LB 接受数据包的安全列表: 在此处输入图片说明 在此处输入图片说明

如果我在这里遗漏了什么,请告诉我。

我的互联网网关:- 在此处输入图片说明

我从 LB 设置的后端连接配置:

在此处输入图片说明

LB 无法与后端建立连接,似乎没有可用的日志信息:

在此处输入图片说明

应用程序工作正常,如果我从计算节点访问:

在此处输入图片说明

jus*_*uss 5

LB 具有运行状况检查,用于测试与您的服务的连接。如果失败,LB 将使您的后端不轮换,并为您提供您所看到的关键健康状况。

默认健康检查

您可以通过查看后端集并单击“更新健康检查”按钮来访问它。

后端设置配置屏幕

编辑:最终我想通了,您应该在后端运行以下命令:

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

使用您配置应用程序侦听的端口。

我使用了 httpd 而不是 spring,但我也做了以下事情

sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
sudo restorecon -F -R -v /var/www/html
Run Code Online (Sandbox Code Playgroud)

我对 selinux 不太熟悉,但您可能需要为您的应用程序做类似的事情。

此外,在同一子网中设置第二台主机以登录并测试连接到另一台主机将有助于故障排除,因为它将验证您的应用程序是否可以在其所在主机之外访问。一旦是,LB 应该会很好。