收到413 Request Entity Too Large错误后,我研究了解决方案。当我使用 ssh 连接到机器并使用
nano /etc/nginx/nginx.conf 命令执行 client_max_body_size 20M 时,一切正常。
但是当新的部署到来时,它又回到旧的部署。根据我的研究,我在项目的根目录中创建了
.platform/nginx/conf.d/proxy.conf 文件。
proxy.conf内容:
client_max_body_size 1024M;
我还创建了 .platform/00_myconf.config 文件。
00_myconf.config内容:
container_commands:
01_reload_nginx:
command: "service nginx reload"
添加这些后上传和部署时,我不断收到相同的错误(413 请求实体太大)。通过 ssh 连接到机器 我无法使用 nano /etc/nginx/nginx.conf 命令在文件中找到 max_body_size 行。
如果没有,你找不到 client_max_body_size 行的原因是它默认不存在,你必须添加它。
然后通过 ssh 进入实例:
cd /etc/nginx/conf.d/
sudo nano proxy.conf
粘贴到:
client_max_body_size 1024M;
然后保存并退出。终于跑了:
sudo service nginx restart
不幸的是,存储在 ec2 上的文件是短暂的,并且在每次部署或实例出现故障时都会丢失。到目前为止,我还无法找到 dotnet 的代码内解决方案,但会在找到时更新。编辑:好的,在代码解决方案中(即,不依赖于 EC2 临时存储):
在 /.platform/nginx/conf.d/proxy.conf 中创建一个文件,内容如下:
client_max_body_size 100M;
确保在 Visual Studio 的属性中,将此文件的“复制到输出目录”设置为“始终”,并且构建操作为“内容”。
.platform
文件夹添加到 GitLab CI/CD 进行发布。重新检查并确保已发布。