Docker安装nginx上传文件大小限制

最近遇到一个问题,在Docker下使用Nginx-proxy为其他程序提供反代时,上传文件报错“文件过大”(431 Request Header Fields Too Large)。

这个问题通常在nginx中都是采用添加一行 client_max_body_size 128m; 来解决,但在docker环境中,被反代的容器不一定允许这么配置。

首先确定被反代的容器内的http服务器是否有附件上传限制,如果系统中存在多个限制(如php等),以最小的那一个为准。

根据nginx容器官方映像 https://hub.docker.com/_/nginx 的文档,生成空白配置文件 config.conf。

$ docker run --name tmp-nginx-container -d nginx
$ docker cp tmp-nginx-container:/etc/nginx/nginx.conf /host/docker/nginx/nginx.conf
$ docker rm -f tmp-nginx-container

在这个空白配置文档中的 http{} 中加入 client_max_body_size 128m;

在Nginx容器中引用这个配置文件:

Volume加入Bind: /host/docker/nginx/nginx.conf:/etc/nginx/nginx.conf

重启容器即可。

发表回复

您的电子邮箱地址不会被公开。