华为云cce:1.使用docker发布前端中配置nginx后文件上传失败

本文记录了在华为云CCE上部署若依框架项目时遇到的问题,即前端文件上传因Nginx返回413错误而失败。解决方案是在Nginx配置文件的http{}区块添加'client_max_body_size 100m',以允许更大的文件上传。

后面会有整个将若依框架项目发布到cce云容器的过程,会慢慢详解。在这里先解决项目发布过程中的疑难问题。给自己留个日志,给大家提供个思路。

通过若依前端上传文件,被nginx拦截,nginx报413错,文件太大:

主要需要在nginx配置文件的http{}下添加:

client_max_body_size 100m;

实例代码:

http{
    ……
    #下面一句是客户端送到nginx的文件大小上限。
    client_max_body_size 100m;
    #下面一句是客户端送到nginx的保持连接的超时时间。这个还是小心些默认的是75s。由于大文件常常需要增加时间,所以我把它放大了。
    keepalive_timeout 2600s;
    #下面一个是nginx发送到后端服务的是超时时间。由于我的项目里面上传文件后后端需要处理文件,要几十分钟,所以这时候不能让nginx断开连接,后端处理完还要向nginx发送返回消息呢。
    proxy_connect_timeout 7200s;
    proxy_read_timeout 7200s;
    proxy_send_timeout 7200s;
}
 
### 华为云 CCE 集群存储卷挂载使用指南 在华为云容器引擎(CCE)集群中,存储卷的挂载是实现持久化数据存储的重要手段。通过配置 PersistentVolume(PV)、PersistentVolumeClaim(PVC)和 StorageClass,可以灵活地满足不同场景下的存储需求[^1]。 以下是关于如何在华为云 CCE 集群中使用存储卷挂载的详细说明: #### 1. 存储卷类型选择 根据引用内容,CCE 支持多种存储卷类型,包括文件存储、块存储和对象存储。每种存储类型的适用场景如下: - **文件存储**:支持多台服务器共享数据,适合需要共享存储的场景,例如企业办公 OA、AI 训练、门户网站等[^2]。 - **块存储**:提供高性能的独占存储,适合有状态应用(如关系数据库、NoSQL 数据库等),推荐与 StatefulSet 结合使用。 - **对象存储**:适合海量非结构化数据的存储,例如视频监控、备份/归档等场景[^2]。 #### 2. 创建 StorageClass StorageClass 是 Kubernetes 中用于动态创建 PV 的资源对象。在 CCE 中,可以通过以下方式定义 StorageClass: ```yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: example-storageclass provisioner: disk.csi.tencentcloud.com # 根据实际云厂商调整 parameters: type: cloud # 存储类型 reclaimPolicy: Retain # 回收策略 ``` 上述示例展示了如何定义一个基于块存储的 StorageClass[^4]。 #### 3. 配置 PersistentVolume (PV) 如果需要静态分配存储资源,可以直接创建 PV。以下是一个基于块存储的 PV 示例: ```yaml apiVersion: v1 kind: PersistentVolume metadata: name: example-pv spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: example-storageclass csi: driver: diskplugin.csi.huaweicloud.com volumeHandle: vol-12345678 # 对应的云盘 ID fsType: ext4 ``` #### 4. 配置 PersistentVolumeClaim (PVC) PVC 是用户对存储资源的请求。以下是一个 PVC 的配置示例: ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: example-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: example-storageclass ``` #### 5. 在 Pod 中挂载存储卷 最后,在 Pod 或 Deployment 中挂载存储卷时,需要指定对应的 PVC。以下是一个 Pod 的配置示例: ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image: nginx volumeMounts: - mountPath: "/usr/share/nginx/html" name: example-volume volumes: - name: example-volume persistentVolumeClaim: claimName: example-pvc ``` #### 注意事项 - 如果使用的是无状态负载(Deployment),挂载块存储时需要确保 Replica 数量为 1,以避免多 Pod 同时访问同一块存储的问题。 - 对于需要共享存储的场景,建议使用文件存储或对象存储。 - 从 CCE 版本 1.27 开始,不再支持 Docker 容器引擎,仅支持 containerd,因此在配置过程中需注意兼容性问题[^4]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳光正好2024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值