我正在使用Kubernetes和Google Cloud托管我的Web应用程序,并正在寻找一种方法来增加等待服务器响应的时间,然后返回错误Internal server error Sorry, there seems to be an error. Please try again soon.
我试图搜索Kubernetes对象,但没有结果,谢谢
我正在使用Kubernetes和Google Cloud托管我的Web应用程序,并正在寻找一种方法来增加等待服务器响应的时间,然后返回错误Internal server error Sorry, there seems to be an error. Please try again soon.
我试图搜索Kubernetes对象,但没有结果,谢谢
1条答案
按热度按时间nnt7mjpx1#
如果我理解正确的话,你有一个托管在Kubernetes集群上的Django应用程序,该集群在Google Cloud上进行管理。
但仍有一些缺失的部分:
这将是:
*谷歌负载均衡:负责在多个服务器之间分配传入的网络流量,以确保不会有单个服务器因过多的流量而不堪重负。它是HTTP/S请求的入口点。
*Kubernetes NGINX Ingress Controller:管理对集群中服务的外部访问,通常是HTTP。它可以提供负载平衡,SSL终止和基于名称的虚拟主机。
*Django应用程序(通过Gunicorn提供):这就是Web应用程序的所在。Gunicorn充当Python Web应用程序的WSGI HTTP服务器,为Django应用程序提供服务以处理传入的HTTP请求。
然后,您可以在每个级别上识别影响超时的设置。
*Django设置:没有直接影响返回错误之前等待服务器响应的时间的设置。您可能希望研究能够以更优雅的方式处理超时的自定义中间件。
请注意,“500 Internal server error“可以源自Django应用程序本身(例如,未处理的异常,错误配置,代码中的错误等),也可以源自基础设施中的其他元素,例如数据库,缓存或Django应用程序所依赖的其他后端服务。
确保Django's logging正确配置为捕获错误和异常(请参阅
settings.py
)。使用Cloud Logging或
kubectl logs <pod-name>
from the Cloud shell检查日志。*独角兽设置:你可以通过在启动Gunicorn(
gunicorn --timeout 120 myproject.wsgi:application
)时修改--timeout
标志来增加超时设置。这会将超时设置为120秒。*Kubernetes Ingress设置:如果你使用的是NGINX Ingress控制器,你可以在Ingress对象上设置
nginx.ingress.kubernetes.io/proxy-read-timeout
和nginx.ingress.kubernetes.io/proxy-send-timeout
注解。*谷歌负载均衡设置:
但同样,“500内部服务器错误”可能无法通过增加更多时间来“解决”:日志对于了解正在发生的事情至关重要。