簡體   English   中英

413 請求實體太大 - Elastic Beanstalk + 負載均衡器 + Node.js 應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM