nginx反向代理踩过的坑及解决

 更新时间:2023年12月25日 09:56:20   作者:endzhi  
这篇文章主要介绍了nginx反向代理踩过的坑及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

nginx作代理服务器,无法上传大于1M文件

解决方式

在proxy_pass的location添加下面2行解决。

client_max_body_size  512m;
client_body_buffer_size 10m;

client_max_body_size 

默认1M,表示客户端上传到服务器最大允许大小,文件到服务器端后(后台检验),检验发现大于该值,HTTP协议会报错 413 Request Entity Too Large。(注意这仅仅影响上传)

client_body_buffer_size

小于client_body_buffer_size直接将数据先在内存中存储。如果请求的值大于client_body_buffer_size小于client_max_body_size,就会将数据先存储到临时文件中。

以下实验nginx的版本1.17.3 

在linux环境  

  • client_max_body_size  3g;   
  • client_body_buffer_size  50m;(单位不可为g,不然启动报错)
  • client_body_buffer_size 值尝试1m-3072m 上传2.4GB的文件结果都成功!

在windows版本下

问题多多值得注意!

  • client_max_body_size  3g;
  • client_body_buffer_size  2047m;(单位不可为g,可成功启动最大值是2047m,但看下面)

上传2.4GB的文件结果:失败  

nginx报错 

malloc(2146435072) failed (8: Not enough storage is available to process this command)

情况说明

1. 即使我添加主机物理内存到6GB,可用5GB。也报这错

2. 即使上传2KB的文件,也报这错

3. 尝试将client_body_buffer_size值设置在大于1024m以,上传1300m可成功,但上传文件如1500m会出错。

4. client_body_buffer_size值设置在小于等于1024m,可成功上传1900m。但上传2048m失败,也报这错。

5. 当上传的单文件大于client_body_buffer_size值时,而小于client_max_body_size某些情况下也会出现上传故障。

Windows版本nginx如何设置

1. client_body_buffer_size 值不要大于或接近1024m。

2. client_max_body_size 和client_body_buffer_size相同的值,(毕竟存放内存,也高效)。

另外注意。  因设置 client_body_buffer_size过大,数据先存储到内存,但实际占用内存是双倍的,上传完毕释放。

Nginx报504 gateway timeout错误

网站项目有Excel导入的功能,执行一个非常耗时的文件,超时不返回,浏览器返回504 gateway timeout错误!

解决方式

在proxy_pass的location添加以下

proxy_connect_timeout 3600s;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;

以上的单位是秒。

总结

好了,这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx彻底解决Druid未授权访问漏洞的方法

    Nginx彻底解决Druid未授权访问漏洞的方法

    Apache Druid作为一个高性能的实时分析数据库,凭借其出色的数据摄取和查询能力,在海量数据分析领域占据了重要地位,然而,其自带的监控页面带来了一个严重的安全隐患:未授权访问漏洞,本文给大家介绍了Nginx彻底解决Druid未授权访问漏洞的方法,需要的朋友可以参考下
    2025-08-08
  • Nginx进阶配置实现SSL证书部署与资源防盗链实操

    Nginx进阶配置实现SSL证书部署与资源防盗链实操

    本文主要介绍了在Web服务运维中使用Nginx进行SSL证书部署,实现HTTPS加密访问,强制HTTP转HTTPS以及配置Nginx防盗链保护静态资源安全的具体方法,感兴趣的可以了解一下
    2026-04-04
  • windows下快速安装nginx并配置开机自启动的方法

    windows下快速安装nginx并配置开机自启动的方法

    这篇文章主要介绍了windows下快速安装nginx 并配置开机自启动的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • Nginx使用命令安装过程及说明

    Nginx使用命令安装过程及说明

    本文概述安装Nginx流程:解压安装包,安装依赖,配置路径为/usr/local/nginx/conf/nginx.conf,设置软连接,启动服务并检查版本
    2025-07-07
  • 树莓派如何搭建web服务器(nginx +php + mysql + vsftpd +phpmyadmin)

    树莓派如何搭建web服务器(nginx +php + mysql + vsftpd +phpmyadmin)

    本文介绍如何使用树莓派搭建Web服务器,包括安装Nginx、PHP、MySQL、ftp和phpMyAdmin,步骤详尽,涵盖不同架构的PHP安装,提供了配置MySQL远程访问和管理数据库的方法,是搭建个人Web服务器的实用指南
    2024-11-11
  • 详解Nginx如何根据swagger关键字屏蔽页面

    详解Nginx如何根据swagger关键字屏蔽页面

    这篇文章主要为大家详细介绍了Nginx 如何根据swagger关键字屏蔽页面的实现方案,文中有详细的解决方案,对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-08-08
  • 详解nginx 代理多个服务器(多个server方式)

    详解nginx 代理多个服务器(多个server方式)

    本篇文章主要介绍了详解nginx 代理多个服务器(多个server方式),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • nginx 老网站域名重定向到新网站的方法(亲测)

    nginx 老网站域名重定向到新网站的方法(亲测)

    本文主要介绍了nginx 老网站域名重定向到新网站的方法,以减少业务影响并确保流量导向新域名,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • 配置Nginx服务器防止Flood攻击的方法

    配置Nginx服务器防止Flood攻击的方法

    这篇文章主要介绍了配置Nginx服务器防止Flood攻击的方法,包括PHP的应用请求限制等降低负载的措施,需要的朋友可以参考下
    2015-06-06
  • Nginx中upstream模块的具体用法

    Nginx中upstream模块的具体用法

    本文主要介绍了Nginx中upstream模块的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论