【发布时间】:2021-12-12 18:28:26
【问题描述】:
堆栈
- Kubernetes(数字海洋)
- 入口 Nginx 控制器
- React 前端(静态文件)
- NodeJS/Express 后端
在某些时候我需要加载多张图片,超过一百张,一些被检索但很多没有加载。在 chrome 控制台中,我收到以下错误:
GET https://api.mydomain.com/images/products/F10014-soporte-caja-2.501.jpg net::ERR_HTTP2_SERVER_REFUSED_STREAM
这些图片位于公共快递文件夹中:
let publicPath = path.join(__dirname, '/public')
console.log(`publicPath ${publicPath}`)
我查看了 NodeJS,但没有发现任何错误。我还尝试在ingress-nginx 服务中添加注释:
apiVersion: v1
kind: Service
metadata:
annotations:
kubernetes.digitalocean.com/load-balancer-id: "e7f5dc8e-3723-11ec-8d3d-0242ac130003"
service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"
service.beta.kubernetes.io/do-loadbalancer-hostname: "mydomain.com"
labels:
helm.sh/chart: ingress-nginx-4.1.0
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: controller
name: ingress-nginx-controller
namespace: ingress-nginx
spec:
type: LoadBalancer
externalTrafficPolicy: Local
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
- name: https
port: 443
protocol: TCP
targetPort: https
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/component: controller
我的问题是:
- 问题出在
ingress-nginx控制器上吗? - 可以解决吗?
- 我应该更改我的解决方案并将文件放在另一个地方吗?
如果您需要信息,请告诉我。
【问题讨论】:
-
您是否注意到失败的图像尺寸更大? LB 可能对您可以下载或上传的文件大小有默认大小限制。
-
您使用的是哪个版本的 HTTP 协议?您是否尝试从您的网站(由您管理)或这是某个公共网站下载图片?
-
@Bala 感谢您的评论,我检查了文件大小,似乎不是问题所在,因为它们中的大多数大小几乎相同。但是,文件大小和请求数量的组合可能是问题所在。
标签: node.js express kubernetes nginx-ingress