我收到 nginx.error:
客户打算发送太大的正文
所以我尝试通过更改 nginx.conf 来修复。这是在使用 Django 的 Google App Engine 中,并使用 Dockerfile 部署到灵活的环境。它执行gunicorn来启动应用程序。
我的 nginx.conf 文件与我的 app.yaml 文件位于同一目录中。
到目前为止,我已经尝试在启动gunicorn之前将nginx.conf复制到Dockerfile中的/etc/nginx/nginx.conf。
我尝试按照其他地方的建议命名文件 nginx-app.conf 。
我尝试注释掉整个 nginx.conf 文件以查看它是否正在使用。
在每种情况下,我都会收到“客户端打算发送太大的正文”错误。
灵活环境中 nginx.conf 位于何处?我可以更改它并将其复制到需要作为 Dockerfile 一部分的位置吗?
当前 Dockerfile:
FROM ubuntu:bionic
RUN apt-get -y update && apt-get -y upgrade \ ...
RUN pip3 install virtualenv
RUN virtualenv -p python3.8 env
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
ADD . /app
WORKDIR /app
ENV PORT 8000
EXPOSE 8000
COPY nginx.conf /etc/nginx/nginx.conf
CMD exec gunicorn --workers 2 --threads 8 -b :$PORT mysite.wsgi:application
我当前的nginx.conf:
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/app_engine/app.log;
error_log /var/log/app_engine/app.log;
gzip on;
gzip_disable "msie6";
server {
listen 8080; (have also tried 8080 ssl;)
directio 4096;
root /usr/share/nginx/www;
index index.html index.htm;
sendfile on;
sendfile_max_chunk 1m;
client_max_body_size 500M;
}
}
注意,我还在 Django 设置中增加了 FILE_UPLOAD_MAX_MEMORY_SIZE 和 DATA_UPLOAD_MAX_MEMORY_SIZE。
感谢您提供的任何帮助!
DazWilkin 在评论中解决了。 App Engine 将请求限制为 32MB
谢谢达兹威尔金