nginx反向代理踩過(guò)的坑及解決
nginx作代理服務(wù)器,無(wú)法上傳大于1M文件
解決方式
在proxy_pass的location添加下面2行解決。
client_max_body_size 512m; client_body_buffer_size 10m;
client_max_body_size
默認(rèn)1M,表示客戶端上傳到服務(wù)器最大允許大小,文件到服務(wù)器端后(后臺(tái)檢驗(yàn)),檢驗(yàn)發(fā)現(xiàn)大于該值,HTTP協(xié)議會(huì)報(bào)錯(cuò) 413 Request Entity Too Large。(注意這僅僅影響上傳)
client_body_buffer_size
小于client_body_buffer_size直接將數(shù)據(jù)先在內(nèi)存中存儲(chǔ)。如果請(qǐng)求的值大于client_body_buffer_size小于client_max_body_size,就會(huì)將數(shù)據(jù)先存儲(chǔ)到臨時(shí)文件中。
以下實(shí)驗(yàn)nginx的版本1.17.3
在linux環(huán)境
- client_max_body_size 3g;
- client_body_buffer_size 50m;(單位不可為g,不然啟動(dòng)報(bào)錯(cuò))
- client_body_buffer_size 值嘗試1m-3072m 上傳2.4GB的文件結(jié)果都成功!
在windows版本下
問(wèn)題多多值得注意!
- client_max_body_size 3g;
- client_body_buffer_size 2047m;(單位不可為g,可成功啟動(dòng)最大值是2047m,但看下面)
上傳2.4GB的文件結(jié)果:失敗
nginx報(bào)錯(cuò)
malloc(2146435072) failed (8: Not enough storage is available to process this command)
情況說(shuō)明
1. 即使我添加主機(jī)物理內(nèi)存到6GB,可用5GB。也報(bào)這錯(cuò)
2. 即使上傳2KB的文件,也報(bào)這錯(cuò)
3. 嘗試將client_body_buffer_size值設(shè)置在大于1024m以,上傳1300m可成功,但上傳文件如1500m會(huì)出錯(cuò)。
4. client_body_buffer_size值設(shè)置在小于等于1024m,可成功上傳1900m。但上傳2048m失敗,也報(bào)這錯(cuò)。
5. 當(dāng)上傳的單文件大于client_body_buffer_size值時(shí),而小于client_max_body_size某些情況下也會(huì)出現(xiàn)上傳故障。
Windows版本nginx如何設(shè)置
1. client_body_buffer_size 值不要大于或接近1024m。
2. client_max_body_size 和client_body_buffer_size相同的值,(畢竟存放內(nèi)存,也高效)。
另外注意。 因設(shè)置 client_body_buffer_size過(guò)大,數(shù)據(jù)先存儲(chǔ)到內(nèi)存,但實(shí)際占用內(nèi)存是雙倍的,上傳完畢釋放。
Nginx報(bào)504 gateway timeout錯(cuò)誤
網(wǎng)站項(xiàng)目有Excel導(dǎo)入的功能,執(zhí)行一個(gè)非常耗時(shí)的文件,超時(shí)不返回,瀏覽器返回504 gateway timeout錯(cuò)誤!
解決方式
在proxy_pass的location添加以下
proxy_connect_timeout 3600s; proxy_send_timeout 3600s; proxy_read_timeout 3600s;
以上的單位是秒。
總結(jié)
好了,這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx搭建RTMP流媒體服務(wù)器的實(shí)現(xiàn)
本文主要介紹了Nginx搭建RTMP流媒體服務(wù)器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07nginx-rtmp-module構(gòu)建流媒體直播服務(wù)器實(shí)戰(zhàn)指南
本文主要介紹了nginx-rtmp-module構(gòu)建流媒體直播服務(wù)器實(shí)戰(zhàn)指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02Nginx加固的幾種方式(控制超時(shí)時(shí)間&限制客戶端下載速度&并發(fā)連接數(shù))
本文主要介紹了Nginx加固的幾種方式,包括控制超時(shí)時(shí)間,限制客戶端下載速度,并發(fā)連接數(shù)這幾種方式,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03通過(guò)Nginx搭建Tomcat9集群并實(shí)現(xiàn)Session共享
這篇文章主要介紹了通過(guò)Nginx搭建Tomcat9集群并實(shí)現(xiàn)Session共享,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06本地通過(guò)nginx配置反向代理的全過(guò)程記錄
這篇文章主要給大家介紹了關(guān)于本地通過(guò)nginx配置反向代理的全過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Nginx+Windows搭建域名訪問(wèn)環(huán)境的操作方法
這篇文章主要介紹了Nginx搭建域名訪問(wèn)環(huán)境,包括nginx配置文件的相關(guān)介紹及對(duì)nginx配置文件的分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03nginx刷新頁(yè)面出現(xiàn)404解決方案(親測(cè)有效)
本文主要介紹了nginx刷新頁(yè)面出現(xiàn)404解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03