没有不值得去解决的问题,也没有不值得去学习的技术!

在 K8s 中报错:504 Gateway Time-out nginx/1.17.8,NGINX 入口控制器在 60 秒后请求超时

添加 3 行 nginx.ingress 相关配置项。

1、在 K8s 中报错:504 Gateway Time-out nginx/1.17.8。请求超时限制为 60 秒。如图1

在 K8s 中报错:504 Gateway Time-out nginx/1.17.8。请求超时限制为 60 秒。
图1
Plaintext

504 Gateway Time-out
nginx/1.17.8

2、参考:已经将相关参数调整为 300 秒。但是仍然报错。

3、新建一个 PHP 文件,运行时间超过 120 秒。curl http://127.0.0.1:81/1.php 未报错。如图2

新建一个 PHP 文件,运行时间超过 120 秒。curl http://127.0.0.1:81/1.php 未报错。
图2
PHP
<?php
sleep(120);
echo 1;
exit;
?>
Plaintext

[root@main-6556cd6b98-jfqc9 public]# curl http://127.0.0.1:81/1.php
1[root@main-6556cd6b98-jfqc9 public]# 

4、但是 curl https://morefun.xxx.xxx.cn/1.php 报错。如图3

但是 curl https://morefun.xxx.xxx.cn/1.php 报错。
图3
Plaintext
[root@main-6556cd6b98-jfqc9 /]# curl https://morefun.xxx.xxx.cn/1.php
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx/1.17.8</center>
</body>
</html>
[root@main-6556cd6b98-jfqc9 /]# 

5、在 Rancher 中 负载均衡 查看/编辑 YAML。如图4

在 Rancher 中 负载均衡 查看/编辑 YAML。
图4

6、参考网址:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#custom-timeouts 。添加 3 行 nginx.ingress 相关配置项。如图5

添加 3 行 nginx.ingress 相关配置项。
图5
Plaintext

    nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "300"

7、curl https://morefun.xxx.xxx.cn/1.php 未报错。符合预期。步骤1响应504的问题也得到解决。如图6

curl https://morefun.xxx.xxx.cn/1.php 未报错。符合预期。步骤1响应504的问题也得到解决。
图6
Plaintext

[root@main-dd5b77685-lxg7c public]# curl https://morefun.xxx.xxx.cn/1.php
1[root@main-dd5b77685-lxg7c public]# 

关于作者 · 持续学习与技术实践

我是一名拥有 15 年以上开发经验的技术从业者,自 2013 年起持续运营个人技术博客,记录工作与个人项目中遇到的真实问题,以及解决问题过程中的探索、实践和思考。

除了技术写作,我也在持续开发和维护自己的独立项目,探索新技术和新工具在实际场景中的应用。我始终相信,没有不值得去解决的问题,也没有不值得去学习的技术。

如果这篇文章对你有所帮助,欢迎浏览博客中的其他文章,也欢迎交流技术经验与想法。

关于我  ·  GitHub  ·  邮件联系