[英]Node/Nginx, 413 request entity too large, client_max_body_size set
[英]Configuring nginx client_max_body_size on Elastic Beanstalk Node
我有一個在 Elastic Beanstalk 上運行的 Node 10 應用程序,當請求有效負載大於 ~1MB 時,它會引發 413 錯誤。
<html>
<head>
<title>413 Request Entity Too Large</title>
</head>
<body>
<center>
<h1>413 Request Entity Too Large</h1>
</center>
<hr>
<center>nginx/1.16.1</center>
</body>
</html>
該請求根本沒有打到我的應用程序; 它被 nginx 拒絕。
我已嘗試根據此答案配置 AWS 以增加允許的請求正文的大小,但無濟於事。
我嘗試在.ebextensions/01_files.config
添加一個文件,其內容為:
files:
"/etc/nginx/conf.d/proxy.conf" :
mode: "000755"
owner: root
group: root
content: |
client_max_body_size 20M;
那沒有用,所以我嘗試將文件直接添加到.ebextensions/nginx/conf.d/proxy.conf
中,僅:
client_max_body_size 20M;
這也沒有奏效。 然后我通過 SSH 進入實例並直接添加文件。 重新部署后,整個conf.d
目錄被刪除並重寫,沒有這個文件。
如何讓 AWS Elastic Beanstalk 與 Node.js 10 在 64 位 Amazon Linux 2/5.1.0 上運行以接受 nginx 配置?
您嘗試使用的nginx
設置 ( /etc/nginx/conf.d/proxy.conf
) 適用於Amazon Linux 1 。
由於您使用的是Amazon Linux 2 ,因此您應該使用不同的文件來設置 nginx。 對於 AL2,nginx 設置應該在.platform/nginx/conf.d/
中,而不是在.ebextentions
中,如文檔中所示。
因此,您可以擁有以下.platform/nginx/conf.d/myconfig.conf
內容:
client_max_body_size 20M;
以上只是配置文件的一個示例。 我無法驗證該設置是否真的有效,但您肯定使用了錯誤的文件夾來設置 nginx 選項。
我的建議是嘗試通過 ssh 手動使其工作,就像您現在嘗試的那樣。 如果通過提供您自己的.platform/nginx/nginx.conf
文件不起作用,您可能會發現您需要覆蓋整個 nginx 設置。
添加client_max_body_size 20M;
在文件夾.platform/nginx/conf.d/proxy.conf
中為我修復了它。 請務必檢查您是否使用亞馬遜 Linux 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.