我在Elastic Beanstalk上运行了一个休息API,效果很好.应用程序方面的一切都运行良好,并按预期工作.
该应用程序是一个rest api,用于查找不同的用户.
example url: http://service.com/user?uid=xxxx&anotherid=xxxx
Run Code Online (Sandbox Code Playgroud)
如果找到具有任一id的用户,则api响应200 OK,如果不是,则响应404 Not Found为.HTTP/1.1状态代码捍卫.
我们的api对404 Not Found很多请求的回答并不少见,弹性beanstalk会将我们的环境转移OK到Warning甚至是Degraded因为这个.nginx由于这种退化状态,它似乎拒绝连接到应用程序.(看起来有30%+阈值到warning50%+进degraded的状态.这是一个问题,因为应用程序实际上是工作正常,但弹性Beanstalks默认设置认为这是一个问题,当它真的不是.
有没有人知道在EB中编辑4xx警告和状态转换的阈值的方法,还是完全禁用它们?
或者我应该真的做一个症状治疗并停止使用404 Not Found这样的电话?(我真的不喜欢这个选项)
我有一个 Python 3.7 的 AWS EB 环境,运行 Amazon Linux 2/3.1.2,使用 Nginx 作为代理服务器。我正在尝试为我的应用程序添加 gzip 压缩。我在网上尝试了几个教程,但它们似乎都不适合我。我也是 AWS 的新手,因此可能不熟悉其某些服务。
目前,我有一个像这样的目录树:
-- .ebextensions
-- .platform
-- nginx
-- conf.d
-- gzip.conf
-- (other files)
Run Code Online (Sandbox Code Playgroud)
我尝试添加一个配置文件来.ebextensions创建一个.conf启用 gzip 压缩的文件,但它似乎不起作用。我也尝试将代理切换到 Apache,但没有成功。本教程说,对于最新版本的 Amazon Linux 2,nginx 配置文件应放置在该.platform文件夹中,因此我按照说明进行了操作。但是,我的gzip.conf文件似乎仍然不起作用 - 文件仍然以其原始格式呈现。
目前我的gzip.conf:
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/html text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
Run Code Online (Sandbox Code Playgroud)
编辑:我通过 SSH 连接到我的 …
我想在Elastic Beanstalk中配置我的暂存环境,以便始终禁止所有蜘蛛.nginx指令看起来像这样:
location /robots.txt {
return 200 "User-agent: *\nDisallow: /";
}
Run Code Online (Sandbox Code Playgroud)
我知道我想在.ebextensions /文件夹下创建一个文件,例如01_nginx.config,但我不知道如何在其中构建YAML以便它可以工作.我的目标是将此位置指令添加到现有配置,而不必完全替换现有的任何现有配置文件.
我在Elastic Beanstalk中部署了一个简单的Node.js Express应用程序.
使用loadtest npm软件包,我每秒150次请求直接打开EC2实例(绕过ELB),这就是事情开始变得毛茸茸的时候.
loadtest -c 10 --rps 150 http://{EC2-IP}/
Run Code Online (Sandbox Code Playgroud)
服务器会立即重置连接(ECONNRESET),使应用程序无法访问.它拒绝支持超过X个并发连接.
scalability nginx amazon-ec2 node.js amazon-elastic-beanstalk