【发布时间】:2020-09-05 01:24:52
【问题描述】:
我们正在 Docker 容器中尝试我们的第一个 .Net Core 3.0 Web 应用程序。我们正在通过 AWS ElasticBeanstalk 部署到 Amazon Linux 2 AMI。我们能够毫无问题地执行服务器的任何 GET 请求。请求中包含正文的任何内容都会失败,并出现 400 Bad Request 错误。 PATCH 和 POST 都失败。如果端点不期望正文,则 PATCH 有效。我们发送的内容只有 147 字节,所以它甚至不应该达到默认的 client_max_body_size 1m。
我发现如果我在我的 Postman 测试中删除 Content-Length 标头,请求就会到达服务器,但是似乎没有包含正文。
我已经在 VisualStudio 和 Docker Desktop 上进行了本地运行测试,并且可以正常工作。我的本地操作系统是 Windows 10,而不是 Linux,而且我没有在本地使用 nginx 或 IIS。
我尝试通过将名为 nginxext.conf 的文件放入“.platform/nginx/conf.d”中,将我的 client_max_body_size 设置为 0(和 20m)。我很确定它正在被读取,因为我第一次收到错误,因为该文件不是 UTF-8 编码的。
我知道我错过了一些非常基本的东西。这看起来不像是一个现成的配置,在 Linux 上的 Docker 中使用 .Net Core 3.0 用于接受 POST 的网站。 ???更不用说发布带有身体的东西了。
提前致谢,
附带问题:有谁知道我在哪里可以找到 AWS 用于其 Amazon Linux 2 映像的“默认”nginx 配置?
【问题讨论】:
-
要获取 EB 上的默认 nginx 设置,您可以通过 ssh 进入 EB 实例并从那里进行检查。
-
@Marcin - 谢谢,这是个好主意。我也想过这个,但是,我正在网上寻找资源。我在 Linux 上不强,但是,我可能会弄明白。
-
我可以在我的 EB 实例上检查它,然后发布它,如果这有帮助吗?
-
@Marcin - 谢谢。如果它是 AWS Amazon Linux 2 AMI,我认为这就是我要寻找的东西。我正在研究如何在通过 ElasticBeanstalk 部署时设置私钥,以便我可以按照您的建议直接从我的 EC2 实例中提取它。
标签: docker nginx .net-core nginx-reverse-proxy