[英]Why is my sample application Elastic Beanstalk + Node.js keep failing?
[英]413 Request Entity Too Large - Elastic Beanstalk + Load Balancer + Node.js application
我查看了所有可能的 stackoverflow 帖子並嘗試了所有不同的方法。 沒有工作。 似乎也沒有關於此的官方文檔。 在我的本地應用程序中一切正常,我可以上傳任何大小的圖像,但是一旦它部署在我的彈性 beanstalk 中,我似乎每個圖像 upoad 的限制為 1M。
問題:每次用戶發布大於 1MB 的圖像時,我都會收到 413 錯誤消息 nginx。
Elastic Beanstalk 日志:2020/07/28 17:22:53 [錯誤] 10404#0: *62 客戶端打算發送太大的正文:2800500 字節,客戶端:172.31.18.162,服務器:,請求:“POST /comment/ image_post/11003031 HTTP/1.1", host: "myapp.com", referrer: "https://myapp.com/11003031"
我為解決問題所做的工作:
我在我的 node.js 應用程序根文件夾中創建了一個 .ebextensions 文件夾,添加了以下代碼並將其命名為 proxi.config,並將其推送到我的 github,它通過管道部署到 Elastic Beanstalk。 我可以在我的存儲庫中看到 proxi.config,但由於某種原因,它會自動被負載均衡器覆蓋(我猜是根據我一直在閱讀的內容)。
proxi.config
container_commands:
01_reload_nginx:
command: "service nginx reload"
files:
"/etc/nginx/conf.d/proxy.conf":
mode: "000755"
owner: root
group: root
content: |
client_max_body_size 25M;
如果這個解決起來比較復雜,有沒有辦法提高1M的限制?
您的proxy.conf
未被使用的可能原因是因為您使用的是當前版本的 EB,它在Amazon Linux 2 (AL2) 上運行。 但是,您嘗試使用的代理設置適用於在 AL1 上運行的舊版 EB。
對於 AL2,nginx 設置應放在.platform
文件夾中,而不是如文檔中所示的.ebextenations
中。
因此,您可以嘗試以下操作:
文件.platform/nginx/conf.d/myconfig.conf
的內容
client_max_body_size 25M;
請注意,我無法自行驗證 nginx 設置。 它仍然可能無法工作,因為它可能設置錯誤或格式錯誤。 但是使用.ebextenations
而不是.platform
絕對是 AL2 EB 環境中的一個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.