簡體   English   中英

在 Elastic Beanstalk 節點上配置 nginx client_max_body_size

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

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