csdn

修改 Nginx 配置来解决 413 Request Entity Too Large 错误,需要调整以下几个配置项:
在这里插入图片描述

1. 修改 Nginx 主配置文件

在 http 块中设置(全局生效):

http {
    # 设置客户端最大请求体大小,默认通常是 1M
    client_max_body_size 20M;  # 设置为 20M,根据需求调整

    # 其他配置...
}

在 server 块中设置(针对特定虚拟主机):

server {
    listen 80;
    server_name test-cloud-test.test.com;

    # 设置客户端最大请求体大小
    client_max_body_size 20M;

    # 其他配置...
}

在 location 块中设置(针对特定路径):

server {
    listen 80;
    server_name test-cloud-test.test.com;

    location /api/openapi/chat/files/upload {
        # 针对文件上传接口设置更大的限制
        client_max_body_size 50M;

        # 如果需要,还可以设置超时时间
        client_body_timeout 60s;
        proxy_read_timeout 60s;

        # 其他代理配置...
    }
}

2. 完整的配置示例

server {
    listen 80;
    server_name test-cloud-test.test.com;

    # 全局客户端最大请求体大小
    client_max_body_size 20M;

    # 客户端请求体超时时间
    client_body_timeout 60s;

    # 客户端请求头超时时间
    client_header_timeout 60s;

    # 客户端请求体缓冲区大小
    client_body_buffer_size 128k;

    location / {
        # 可以在这里设置更小的限制
        client_max_body_size 10M;

        # 其他配置...
    }

    location /api/openapi/chat/files/upload {
        # 文件上传接口允许更大的文件
        client_max_body_size 50M;
        client_body_timeout 120s;
        proxy_read_timeout 120s;

        # 代理配置(如果有)
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

3. 修改后的操作步骤

步骤 1:找到 Nginx 配置文件

# 查找 nginx 配置文件位置
nginx -t
# 或者
ps aux | grep nginx

# 常见的配置文件路径:
# /etc/nginx/nginx.conf
# /etc/nginx/conf.d/default.conf
# /etc/nginx/sites-available/default

步骤 2:编辑配置文件

sudo vim /etc/nginx/nginx.conf
# 或者
sudo vim /etc/nginx/conf.d/default.conf

步骤 3:测试配置语法

sudo nginx -t

步骤 4:重新加载配置

# 平滑重载配置(不中断服务)
sudo nginx -s reload

# 或者重启 nginx
sudo systemctl restart nginx
# 或者
sudo service nginx restart

4. 针对不同场景的建议值

# 小型图片上传
client_max_body_size 5M;

# 一般文件上传
client_max_body_size 20M;

# 大型文件上传(视频、压缩包等)
client_max_body_size 100M;

# 无限制(不推荐)
client_max_body_size 0;

5. 检查配置是否生效

# 检查当前配置
curl -I -X POST https://test-cloud-test.test.com/api/openapi/chat/files/upload

# 或者查看 nginx 错误日志
tail -f /var/log/nginx/error.log

注意事项:

  1. 权限问题:确保 Nginx 进程有权限读取上传的大文件
  2. 磁盘空间:确保服务器有足够的磁盘空间存储上传的文件
  3. 超时设置:大文件上传可能需要更长的超时时间
  4. 安全考虑:不要随意设置为无限制,避免被恶意利用

根据你的实际需求选择合适的 client_max_body_size 值,然后重新加载 Nginx 配置即可。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐