当后端服务器已启动时,服务器会使用 HTTP 504 错误代码进行响应,并且 SE 能够将请求发送到后端服务器,但服务器在响应之前关闭。

SE 等待响应,直到读取超时(1 小时),并使用响应代码 504 响应客户端。由于客户端或应用程序服务器在出现错误时会关闭连接,因此会出现长时间的默认空闲超时。

参数 upstream_connect_timeout 是后端连接的空闲超时,此超时的默认值为 3600000 毫秒(1 小时)。upstream_send_timeoutupstream_read_timeout 的默认值为 3600000 毫秒(1 小时)。可以使用 Shell 提示符更改 SE 上空闲连接的超时值。

有关上述超时值的详细信息,请参见《VMware NSX Advanced Load Balancer 配置指南》中的“服务引擎上后端服务器的超时值”主题。

如果 HTTP 504 响应代码的 1 小时超时值(等待时间)不可接受,请执行下面所述的解决办法之一:

  1. 解决方案 1:使用 Shell 提示符更改以下超时选项的值,以缩短 HTTP 504 响应代码等待时间。

    1. upstream_connect_timeout

    2. upstream_send_timeout

    3. 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. 解决方案 2:使用 NSX Advanced Load Balancer UI 启用终止空闲连接并更改空闲持续时间的值。通过更改配置文件设置选项,SE 可以使用 HTTP 503 响应代码进行响应。

    1. 编辑配置文件选项以更改所需虚拟服务的超时值。当不同的后端服务器具有截然不同的行为,并且每个服务器需要不同的超时值时,可使用该选项。导航到应用程序 > 虚拟服务,然后选择所需的虚拟服务。单击编辑图标。

    2. 选择配置文件部分下 TCP/UDP 配置文件的下拉菜单。

    3. 选择 TCP 代理设置部分下的自定义选项卡。

    4. 选择终止空闲连接选项,并为空闲持续时间设置所需的值。空闲持续时间是保持活动状态探测的持续时间或空闲会话的超时值。此值以秒为单位进行设置。可以设置的最小值为 5 秒,可以设置的最大值为 3600 秒(1 小时)。如果该值设置为零,会将空闲超时设置为无限。

      注:

      如果服务器空闲的时间等于或超过所配置的空闲持续时间,SE 将关闭后端连接。在这种情况下,SE 将使用 HTTP 503 响应代码进行响应。