当后端服务器已启动时,服务器会使用 HTTP 504 错误代码进行响应,并且 SE 能够将请求发送到后端服务器,但服务器在响应之前关闭。
SE 等待响应,直到读取超时(1 小时),并使用响应代码 504
响应客户端。由于客户端或应用程序服务器在出现错误时会关闭连接,因此会出现长时间的默认空闲超时。
参数 upstream_connect_timeout 是后端连接的空闲超时,此超时的默认值为 3600000 毫秒(1 小时)。upstream_send_timeout 和 upstream_read_timeout 的默认值为 3600000 毫秒(1 小时)。可以使用 Shell 提示符更改 SE 上空闲连接的超时值。
有关上述超时值的详细信息,请参见《VMware NSX Advanced Load Balancer 配置指南》中的“服务引擎上后端服务器的超时值”主题。
如果 HTTP 504
响应代码的 1 小时超时值(等待时间)不可接受,请执行下面所述的解决办法之一:
解决方案 1:使用 Shell 提示符更改以下超时选项的值,以缩短 HTTP 504 响应代码等待时间。
upstream_connect_timeout
upstream_send_timeout
upstream_read_timeout
使用 configure serviceengineproperties 命令下的 se_runtime_properties 选项。
#shell Login: admin Password: [avi-cntrl1]: > configure serviceengineproperties [avi-cntrl1]: seproperties> se_runtime_properties [avi-cntrl1]: seproperties:se_runtime_properties> upstream_connect_timeout <value> [avi-cntrl1]: seproperties:se_runtime_properties> upstream_send_timeout <value> [avi-cntrl1]: seproperties:se_runtime_properties> upstream_read_timeout <value>
注:更改上述超时选项的值会影响 SE 上的所有虚拟服务。
解决方案 2:使用 NSX Advanced Load Balancer UI 启用终止空闲连接并更改空闲持续时间的值。通过更改配置文件设置选项,SE 可以使用 HTTP
503
响应代码进行响应。编辑配置文件选项以更改所需虚拟服务的超时值。当不同的后端服务器具有截然不同的行为,并且每个服务器需要不同的超时值时,可使用该选项。导航到 ,然后选择所需的虚拟服务。单击编辑图标。
选择配置文件部分下 TCP/UDP 配置文件的下拉菜单。
选择 TCP 代理设置部分下的自定义选项卡。
选择终止空闲连接选项,并为空闲持续时间设置所需的值。空闲持续时间是保持活动状态探测的持续时间或空闲会话的超时值。此值以秒为单位进行设置。可以设置的最小值为 5 秒,可以设置的最大值为 3600 秒(1 小时)。如果该值设置为零,会将空闲超时设置为无限。
注:如果服务器空闲的时间等于或超过所配置的空闲持续时间,SE 将关闭后端连接。在这种情况下,SE 将使用 HTTP
503
响应代码进行响应。