上传大文件时 Nginx 代理超时

上传大文件时 Nginx 代理超时

我在使用 Nginx 时遇到了奇怪的行为。在我的例子中,Nginx 充当 Jetty 的代理。配置如下:

server {
    listen   80;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    client_max_body_size 5M;
    server_name test.com www.test.com
    location / {
         auth_basic     "Restricted area";
         auth_basic_user_file   /etc/nginx/htpasswd;
         proxy_pass        http://localhost:8080;
         proxy_set_header  X-Real-IP $remote_addr;
         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header  X-Forwarded-Proto http;
         proxy_set_header  X-Real-IP $remote_addr;
         proxy_set_header  Host $http_host;
         gzip on;
    }
}

上传大于 5M 的文件时,我收到“网关超时”信息。CPU 使用率为 0%。我不知道出了什么问题。这与网络速度无关,因为我正在本地测试。

如果我跳过代理并尝试直接将文件上传到应用服务器(我的意思是:在端口 8080 上),一切都会顺利进行。

有什么想法吗?问候!

答案1

可能需要增加 nginx 上游超时。尝试将以下内容添加到上游配置中。

proxy_connect_timeout       600;
proxy_send_timeout          600;
proxy_read_timeout          600;
send_timeout                600;

答案2

可能需要更改限制

 client_max_body_size 5M;

类似于

 client_max_body_size 10M;

相关内容